小编Sea*_*een的帖子

如何在NodaTime中准确表示日期范围?

目标

我有一个LocalDate项目列表,代表开始日期和结束日期的集合.

我希望能够存储日期范围,以便我可以对它们进行操作,作为一组重叠或不同的范围等.

问题

  • NodaTime是否提供了我在文档中遗漏的某种DateRange构造?
  • 我在想这个错吗?有没有更自然/首选的方法来实现NodaTime已经允许的?
  • 我是否通过尝试使用LocalDate考虑日期范围作为开始日期和结束日期来解决问题?

我对NodaTime完全不熟悉,并认为这对我来说是一个概念上的误解.

更新:我从2009年开始注意到关于这个主题的类似问题,但这似乎是指另一个实用类; 我假设从那时起NodaTime可能已经发展到适应这种情况.

.net c# nodatime

9
推荐指数
1
解决办法
1755
查看次数

MiniProfiler:如何配置AngularJS + WebAPI应用程序?

在MiniProfiler社区上交叉发布.

我正在尝试将MiniProfiler放入我当前的堆栈中.我认为我主要是设置,但我错过了UI方法,并希望得到关于最佳方法的建议.

当前堆栈

  • SQL for DB(包括MiniProfiler表)
  • EF 6
  • WebAPI 2 API应用程序
  • Angular 1.x. 用户界面的应用程序(单独的应用程序,没有MVC支持它) - 我认为此时它是1.5.x.

所以,目前的方法RenderIncludes()是我无法获得的.

包含JS文件并将其设置为从SQL Server存储中检索信息的最佳方法是什么?我知道这些文件包含在UI repo中,但我没有看到用于显式配置的文档.

我到目前为止所尝试的内容 - Web API应用程序

  • 安装MiniProfilerMiniProfiler.EF6包.

Web.Config - 添加了Handler

(不确定是否有必要):

<add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" />
Run Code Online (Sandbox Code Playgroud)

添加了CORS过滤器以将MiniProfiler ID公开给我的客户端应用程序:

public class AddMiniProfilerCORSHeaderFilter : ActionFilterAttribute
{
    public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
    {
        actionExecutedContext.Response.Headers.Add("Access-Control-Expose-Headers", "X-MiniProfiler-Ids");
    }
}
Run Code Online (Sandbox Code Playgroud)

添加该过滤器作为启动的一部分:

config.Filters.Add(new AddMiniProfilerCORSHeaderFilter());`
Run Code Online (Sandbox Code Playgroud)

在Global.asax中,添加到Application_Start():

var connectionString = ConfigurationReader.GetConnectionString(Constants.ConfigSettings.CONNECTION_STRING_NAME);

MiniProfiler.Settings.Storage = new SqlServerStorage(connectionString);
MiniProfilerEF6.Initialize();
Run Code Online (Sandbox Code Playgroud)

更新开始/结束请求:

   protected void …
Run Code Online (Sandbox Code Playgroud)

mvc-mini-profiler asp.net-web-api angularjs asp.net-web-api2

9
推荐指数
1
解决办法
1166
查看次数

WPF绑定:根据属性设置列表框项文本颜色

我敢肯定这可能是WPF中的基本内容,但我是XAML语法的新手,我正试图绕过它.

安装程序

我有一个LogItem类型 - 只是一个POCO:

public class LogItem
{ 
    public string Message {get;set;}
    public Color MessageColor {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

LogItem我的ViewModel中的List :

    private ObservableCollection<LogItem> _logItems; 
    public ObservableCollection<LogItem> LogItems
    {
        get { return _logItems; }
        set
        {
            if (value != _logItems)
            {
                _logItems = value;
                OnPropertyChanged("LogItems");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的viewmodel绑定到视图,以便我可以执行以下操作:

<ListBox Grid.Row="0" Margin="0,10,0,0" Grid.ColumnSpan="3" Height="150" ItemsSource="{Binding LogItems}">
Run Code Online (Sandbox Code Playgroud)

(显然我还是要设置显示文本绑定等)

问题

鉴于我在LogItems中有一个MessageMessageColor属性,将项目文本的颜色绑定到我指定的颜色的正确XAML语法是什么?

c# wpf xaml listbox mvvm

8
推荐指数
1
解决办法
2万
查看次数

尽管.gitignore和rm -r --cached,git仍然显示文件未跟踪.我做错了什么?

在这种情况下,我不确定我的.gitignore文件出了什么问题,但是这些文件一直在显示.

背景

我正在使用Jekyll建立一个博客.Jekyll 在开始服务时生成_site和编目.sass-cache.

我之前提交过这些目录,然后才意识到我想忽略它们.

为了过于谨慎,我向我添加了以下所有内容.gitignore:

##Jekyll
/_site/
_site/
_site
/.sass-cache/
.sass-cache/
.sass-cache
Run Code Online (Sandbox Code Playgroud)

既然我知道我之前提交过这些文件,我:

  • 提交了更新的.gitignore文件.
  • 做了一个 git rm -r --cached .
  • 删除了_site.sass-cache文件夹
  • 跑了一个,git add .git status显示工作目录是干净的

问题

尽管如此,更新的.gitignore文件,并验证(我认为?)事情是干净和良好的,每当我运行bundle exec jekyll serve和jekyll生成文件时,我看到.sass-cache_site显示在我未跟踪的文件中.

  • 我在这做错了什么?我的.gitignore是不正确的?
  • 如何确保git永远不会在未跟踪列表中显示这些目录?

可以在此处找到当前状态的.gitignore .

git gitignore jekyll

8
推荐指数
1
解决办法
2685
查看次数

Crystal Report:如何在一个公式中评估多个IF语句?

背景

  • 我正试图在我的报告的详细信息行上做一些漂亮的验证.
  • 我有几个名为Assert语句的公式,如果测试失败则返回false,如果它们通过则返回true.

目标

  • 我想创建一个存储"规则违规"的数组,然后将它们显示在行末的字段中,名为"Broken Rules"的标题下

到目前为止我做了什么

  • 创建一个Array并将其初始化为报表头中的空字符串数组
  • 创建了一个公式来评估每个规则,增加数组,并添加破碎的规则编号(这是每个规则的重复代码,没有什么花哨的).这将添加到我的详细信息显示上方的抑制详细信息部分.
  • 创建了一个公式,它是规则损坏数组中元素的连接.这是一个与我的详细信息字段一起显示的公式.
  • 创建了一个公式,将规则broken数组设置为空.在显示详细信息后,这会显示在详细信息部分中.

问题

  • Crystal似乎不允许我能找到的"end if"语句.
  • 因此,似乎我只能评估一个If语句而不是单个公式中的倍数.
  • 这意味着我不能做多个ifs,每个规则一个.

示例代码

创建数组(一个名为Init_StringVar_Array_RulesBroken的公式):

//@Init
//This goes into the report header
WhilePrintingRecords;

//initializes the array of broken rules which we'll add to during details
StringVar Array RulesBroken;
"";
Run Code Online (Sandbox Code Playgroud)

前三个规则评估的示例,用于递增数组和添加值(这在名为Increment_StringVar_Array_RulesBroken的公式中):

//@Increment
//Goes before the details section is displayed

//accesses the shared variable
WhilePrintingRecords;
StringVar Array RulesBroken;

//separate if statement for each assert statement

//01
if not {@Assert_01_IfCrewIsConstructionCrew_CBFlagShouldBeYesOrDirect} then
Redim Preserve RulesBroken[UBound(RulesBroken) + 1]; //extends the array to …
Run Code Online (Sandbox Code Playgroud)

arrays if-statement formula crystal-reports crystal-reports-2008

7
推荐指数
1
解决办法
2万
查看次数

Git哲学:如何将"主"分支转为"生产"分支?

很确定我误解了git.

我的目标

  • 我在github上有一个私人仓库,有一个"主"分支.
  • 我想也有一个生产分支,我将把我所有的变化从主人推到.
  • 然后,我想将它连接到Azure,并告诉Azure从生产分支自动部署.

我怎样才能做到最好?最初我认为它是"git push",但我相信这是远程存储库,所以我现在想知道将"主"分支合并到"生产"分支的最佳做法是什么.

或者,我是否在考虑整件事?

谢谢 - 期待我的Subversion日子落后于我.

git deployment version-control github azure

7
推荐指数
1
解决办法
2895
查看次数

Oracle Managed ODP.NET找不到tnsnames.ora

我的托管ODP.net webapp在本地工作,但在将其部署到服务器时,它失败并显示错误:

"TNS:监听器当前不知道连接描述符中请求的服务"

从环顾四周看,这似乎是因为它无法访问tnsnames.ora文件.

我试过以下但没有成功:

  • 将tnsnames.ora文件(本地工作的文件)放入[oracle home] [product] ... \network\admin文件夹.
  • 在Managed ODP的web.config部分中设置指向环境变量的TNS_ADMIN设置.
  • 在Managed ODP的web.config部分中设置TNS_ADMIN设置直接指向tnsnames.ora文件.

在服务器上,尝试运行tnsping会产生错误TNS-03502:未找到消息3502; product = NETWORK,facility = TNS没有消息文件

我错过了什么?

.net oracle managed odp.net

7
推荐指数
2
解决办法
1万
查看次数

jQuery AJAX发布到MVC Controller对象 - 请求显示为null

我知道我在这里遗漏了一些细节.

问题

尽管谷歌搜索,尝试示例,不同的格式等,我发送的AJAX请求始终被验证为所有字段都为空,但不是空.

我想我不是以适当的格式发送东西让控制器把它识别为对象,但我不确定是什么.

提琴手:我的要求是什么样的

有一些虚拟数据:

在此输入图像描述

代码:模型类

public class ContactUsMessage
{
    public string Email { get; set; }
    public string Name { get; set; }
    public string PhoneNumber { get; set; }
    public string Message { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

代码:WebAPI控制器

    [HttpPost]
    public HttpResponseMessage NewMessage(ContactUsMessage messageToSend)
    {
        if (messageToSend == null)
        {
            var sadResponse = Request.CreateResponse(HttpStatusCode.BadRequest, "Empty Request");
            return sadResponse;
        }

        var messageValidator = new ContactUsMessageValidator();
        var results = messageValidator.Validate(messageToSend);
        var failures = results.Errors;
        var sadString = "";
        if (!results.IsValid) …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net-mvc jquery asp.net-mvc-4

7
推荐指数
1
解决办法
5万
查看次数

Knockout + Select2 - 设置默认值?

TL; DR:我需要在select2字段上设置一个默认值,通过knockout绑定,但是select2绑定会将我的viewmodel值覆盖为"",而不是接受该值.

这些成分

我正在使用以下内容:

  • KnockoutJS
  • 在输入字段上选择2
  • 自定义敲除绑定到select2
  • 一个ajax调用,用于在我的viewmodel上加载一个对象(发票)作为Start()方法的一部分.

目标

  • 加载我的值作为初始viewmodel Start()函数的一部分
  • 在加载发票时将select2默认值绑定到我的VM的值.
  • 允许用户选择其他选项
    • 由于我们降低select2值的方式,因此默认值也会包含在select2选项中,所以不需要

问题

  • 如果我从空白表格开始,Select2将完全正常工作.它在下拉列表等时从Ajax调用加载我的值.
  • 但是,当我加载发票以进行显示时,未在select2控件上设置viewmodel值.
    • 看来select2控件实际加载数据并""在加载时覆盖我的viewmodel值,因为尚未选择值 - 而不是让我根据我的绑定值显示默认项.

到目前为止关于试图解决它的想法

我将调查所有这些:

  • 我可能没有正确使用knockout绑定来允许默认元素选择不是其值的一部分.
  • 如果有一种方法可以验证是否已加载select2框,然后触发元素更新,那也没关系.

代码

文件加载

$(document).ready(function () {
    'use strict';

    console.log("creating viewmodel");
    vm = new invoiceDetailsPage.ViewModel();
    vm.Start();

    console.log("applying bindings");
    ko.applyBindings(vm);
});
Run Code Online (Sandbox Code Playgroud)

invoiceDetailsPage NameSpace(删除了一些不相关的部分)

var invoiceDetailsPage = invoiceDetailsPage || {

    InvoiceDetailItem: function () {
        'use strict';
        var self = this;


        self.DatePayable = new Date(); 
        self.Fees = 0.00;
        self.Costs = 0.00;
        self.Adjustments = ko.observable();
        self.AdjustmentNote = ko.observable(); …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery knockout.js jquery-select2

7
推荐指数
1
解决办法
4048
查看次数

.Net Claims Auth - 无法设置当前主体

我正在尝试使用基于声明的身份验证重新登录系统.

到现在为止还挺好

单步执行,它似乎正确评估用户名和密码并正确创建声明主体(包括添加身份验证类型,以便根据此SO问题将IsAuthenticated设置为true .)

但是之后...

不知何故,身份似乎没有正确设置在线上.结果,我被直接重定向回登录页面.

代码

我有以下内容global.asax:

private void Application_PostAuthenticateRequest(object sender, EventArgs e)
{
    var currentPrincipal = ClaimsPrincipal.Current; 
    var transformer = new ClaimsTransformer(); //My own custom transformer; code below.
    var newPrincipal = transformer.Authenticate(string.Empty, currentPrincipal); // does the transformation

    // as I understand, it is proper & recommnded to set both of these
    Thread.CurrentPrincipal = newPrincipal;
    HttpContext.Current.User = newPrincipal;
}
Run Code Online (Sandbox Code Playgroud)

在我的登录控制器中,我对会员数据库进行了简单的测试.我在调试时验证了这newCP是一个有效的,经过身份验证的身份,具有预期的名称.

[HttpPost]
[AllowAnonymous]
public ActionResult UserLogin(LoginViewModel viewModel)
{

    var loginSuccess = Membership.ValidateUser(viewModel.UserName, viewModel.Password);

    if …
Run Code Online (Sandbox Code Playgroud)

c# asp.net authentication claims-based-identity asp.net-mvc-4

7
推荐指数
1
解决办法
6373
查看次数