小编DL *_*han的帖子

DateTime.Now和Culture/Timezone特定

我们的应用程序旨在处理来自不同地理位置的用户.

我们无法检测当前最终用户当地时间和时区对其进行操作的情况.他们选择不同的文化,如sv-se,en-us,ta-In甚至他们从欧洲/伦敦时区访问..

我们在美国托管服务器托管它,应用程序用户来自 Norway/Denmark/Sweden/UK/USA/India

问题是我们用来DateTime.Now存储记录创建/更新日期等.

由于服务器在美国运行,所有用户数据都保存为美国时间:(

在SO中进行研究后,我们决定将所有历史日期存储在DB中 DateTime.UtcNow

问题:

在此输入图像描述

创建了一条记录29 Dec 2013, 3:15 P.M Swedish time.

 public ActionResult Save(BookingViewModel model)
    {
        Booking booking = new Booking();
        booking.BookingDateTime = model.BookingDateTime; //10 Jan 2014 2:00 P.M
        booking.Name = model.Name;
        booking.CurrentUserId = (User)Session["currentUser"].UserId;
        //USA Server runs in Pacific Time Zone, UTC-08:00
        booking.CreatedDateTime = DateTime.UtcNow; //29 Dec 2013, 6:15 A.M
        BookingRepository.Save(booking);
        return View("Index");
    }
Run Code Online (Sandbox Code Playgroud)

我们希望向在India/Sweden/USA登录的用户显示相同的历史记录时间.

截至目前,我们正在使用当前文化用户登录并从配置文件中选择时区并使用TimeZoneInfo类进行转换

<appSettings>
    <add key="sv-se" value="W. Europe Standard Time" />
    <add key="ta-IN" value="India Standard …
Run Code Online (Sandbox Code Playgroud)

c# asp.net timezone datetime nodatime

27
推荐指数
3
解决办法
4万
查看次数

Azure函数部署成功但触发器不同步

我的消费计划有一个简单的python Azure 函数。

它在本地运行得很好。代码如下。

import logging

import azure.functions as func


def main(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')

name = req.params.get('name')
if not name:
    try:
        req_body = req.get_json()
    except ValueError:
        pass
    else:
        name = req_body.get('name')

if name:
    return func.HttpResponse(f"Hello, {name}. This HTTP triggered function executed successfully.")
else:
    return func.HttpResponse(
         "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.",
         status_code=200
    )
Run Code Online (Sandbox Code Playgroud)

当部署到服务器时,所有代码和必要的包也得到部署。

然而,http …

python azure-functions

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

如何为以下返回json的Http调用添加异常测试

[HttpPost]
[Route("TnC")]
public IHttpActionResult TnC(CustomViewModel myViewModel)
{
    try
    {
        return Json(_Internal.TnC(myViewModel, LoggedInUser));
    }
    catch (BusinessException exception)
    {
        return Json(BuildErrorModelBase(exception));
    }
}
Run Code Online (Sandbox Code Playgroud)

如果_Internal服务具有99.99%的正常运行时间且未定义正式的故障合同接口.

在我的应用程序级别(业务层级别)中作为BusinessException- 根类处理的异常

其中BusinessException的定义如下

public class BusinessException : Exception
{
    BusinessException()...
    BusinessExceptionFoo()...
    BusinessExceptionBar()...
    //...
}
Run Code Online (Sandbox Code Playgroud)

而目前的测试方法是

要做的事:添加异常测试

[TestMethod]
[ExpectedException(typeof(BusinessException),
        "Not a valid Business Case")]
public void TnCTest()
{
    var bookingService = myContainer.Resolve<mySvc>();

    var controller = new LinkBookingController(mySvc, myContainer);
    var expectedResult = controller.TnC(new myViewModel
    {
        ...params
    });

    var actualResult = GetData<Result<myViewModel>>(expectedResult);

    Assert.AreEqual(expectedResult, actualResult);
} …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc unit-testing mstest

6
推荐指数
1
解决办法
257
查看次数

如何在使用EnableModelValidation时验证FormView数据?

我正在尝试使用FormView并希望验证服务器端的一些数据.我正在尝试使用该属性,EnableModelValidationMSDN对此非常不完整.

看到了一个aproach(但关于动态数据,而不仅仅是ObjectDataSource),你抛出一个ValidationException它,如果你有一个它将处理ValidationSummary.不幸的是,它与黄色错误页面崩溃而不是显示摘要.

以下是我的课程:

namespace FormViewTest
{
    [DataObject]
    public class Person
    {
        private int age;

        [DataObjectField(false)]
        public int Age
        {
            get { return age; }
            set
            {
                if (value < 0)
                {
                    throw new ValidationException("Invalid age");
                }
                age = value;
            }
        }

        public void Insert(Person p)
        { }

        public Person Get()
        {
            return new Person();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

和aspx:

<asp:FormView runat="server"
    DataSourceID="ObjectDataSource1"
    DefaultMode="Insert"
    EnableModelValidation="true">
    <InsertItemTemplate>
        Age:
        <asp:TextBox …
Run Code Online (Sandbox Code Playgroud)

c# asp.net formview

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

从WinForms应用程序中的另一个线程访问由GUI Worker Thread创建的Button

从C# - windows窗体应用程序中的不同线程访问GUI工作线程中创建的按钮

c# multithreading winforms

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

如何在条件之间使用SQL CASE语句

我是SQL Case Statement的新手.当我使用case语句的'between'子句时,它给出了一个错误.查询如下

SELECT CASE
       WHEN @Divid=1 THEN CONVERT(varchar(20),datename(mm,m.dob)) + ' ' + CONVERT(varchar(20),datename(DAY ,m.dob))
       ELSE CONVERT(varchar(20),datename(mm,m.ActualDOB)) + ' ' + CONVERT(varchar(20),datename(DAY ,m.ActualDOB))
   END 'DOB' ,
       m.FirstName + ISNULL(m.LastName,'') 'Name',
                                           m.EmployeeNo ,
                                           m.Customer
FROM sEmployeeMaster m
JOIN lDivision d ON m.BizVertical=d.Division
WHERE d.DivisionID= @Divid
  AND CASE
      WHEN @Divid=1 THEN MONTH(dob) BETWEEN MONTH(getdate()) AND MONTH(getdate()+2)
           AND DAY(dob)BETWEEN DAY(getdate()) AND DAY(getdate()+2)
      ELSE MONTH(ISNULL(m.ActualDOB,dob) BETWEEN MONTH(getdate()) AND MONTH(getdate()+2)
           AND DAY(m.ActualDOB,
                   dob)BETWEEN DAY(getdate()) AND DAY(getdate()+2)
  END
Run Code Online (Sandbox Code Playgroud)

sql sql-server case

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