小编Jas*_*ans的帖子

关于使用命令设计模式的思考

我有一些代码可以更新电子邮件的人员列表.此列表经常更新,在调用代码的实际"发送电子邮件"部分之前添加和删除人员.目前我的代码处理这个是这样的:

if (instructorEmailType == InstructorEmailType.AddToCourse)
{
    // If instructor not already in the list, then put them in.
    if (!this.InstructorsToEmail.ContainsKey(courseInstructor))
    {
        this.InstructorsToEmail.Add(courseInstructor, InstructorEmailType.AddToCourse);
    }
    else
    {
        // If instructor already in the list, and marked for removal, then get rid
        // of that entry from the list.
        if (this.InstructorsToEmail[courseInstructor] == InstructorEmailType.RemoveFromCourse)
        {
            this.InstructorsToEmail.Remove(courseInstructor);
        }
    }
}
else
{
    if (this.InstructorsToEmail.ContainsKey(courseInstructor))
    {
        this.InstructorsToEmail.Remove(courseInstructor);
    }
    else
    {
        this.InstructorsToEmail.Add(courseInstructor, InstructorEmailType.RemoveFromCourse);
    }
}
Run Code Online (Sandbox Code Playgroud)

这很复杂,我不喜欢它.我一直在考虑实现Command设计模式.我的想法是创建两个命令:

  • SendAllocatedInstructorEmailCommand
  • SendDeallocatedInstructorEmailCommand

当教师被分配到课程时,我会新建SendAllocatedInstructorEmailCommand并添加它以CommandInvoker.SetCommand供以后使用.同样,我会SendDeallocatedInstructorEmailCommand …

command design-patterns

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

在Javascript中获得接下来的12个月的结果搞砸了

从今天开始,我有以下代码用于生成未来12个月(含)的列表:

function DateUtilFunctions() {
    var self = this;

    var monthNames = new Array();

    monthNames[0] = "January";
    monthNames[1] = "February";
    monthNames[2] = "March";
    monthNames[3] = "April";
    monthNames[4] = "May";
    monthNames[5] = "June";
    monthNames[6] = "July";
    monthNames[7] = "August";
    monthNames[8] = "September";
    monthNames[9] = "October";
    monthNames[10] = "November";
    monthNames[11] = "December";

    self.getNext12MonthNamesWithYear = function () {
        var months = new Array();
        var today = new Date(Date());

        var loopDate = new Date();
        loopDate.setTime(today.valueOf());

        var todayPlus12Months = new Date(today.setMonth(today.getMonth() + 12));

        while (loopDate.valueOf() < …
Run Code Online (Sandbox Code Playgroud)

javascript date

5
推荐指数
3
解决办法
2690
查看次数

使用REST API登录TeamCity服务器,而不在URL中传递凭据

作为对上一个问题的跟进,我问:如何在TeamCity REST API中传递用户名和密码,我想检查一下.

有人能告诉我是否可以以更安全的方式访问TeamCity REST API,而不是在URL中传递用户名和密码?

我觉得在网址中传递凭据是唯一的方法,因为嗅探器很容易在网址上获取并使用凭证本身.

security rest teamcity

5
推荐指数
2
解决办法
3603
查看次数

使用背景填充调整垂直和水平图像的图像大小

我正在尝试创建一个图库.我想用PHP Image Magick尝试这次.

上传文件时,我希望将其大小调整为1024x724.如果图像是垂直的(宽度<高度)我希望它安装在图像的中心和透明背景(或者如果不可能是白色)两侧应该是空白的,所以图像总是1024x724和方面无线电广播.

如果图像是水平的(宽度>高度),则同样适用.

到目前为止,这是我的代码:

$img = new Imagick($targetFile);
$img->scaleImage(1024,724);
$img->setGravity(imagick::GRAVITY_CENTER);
$img->setImageBackgroundColor('white');
$img->extentImage(1024,724,0,0);

$img->writeImage($targetFile);

$img = new Imagick($targetFile);
$img->scaleImage(150,150);
$img->setGravity(imagick::GRAVITY_CENTER);
$img->setImageBackgroundColor('white');
$img->extentImage(150,150,0,0);

$img->writeImage($targetThumb);
Run Code Online (Sandbox Code Playgroud)

php imagemagick

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

返回自定义错误

我设计了一个控制器ErrorController,使用类似Forbiddenor 的方法调用NotFound,因此我可以将以下几行添加到 Web.config 中:

<customErrors mode="On" defaultRedirect="~/Error/Unknown" />
    <error statusCode="404" redirect="~/Error/NotFound" />
    <error statusCode="403" redirect="~/Error/Forbidden" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)

所以现在我希望能够做这样的事情:

public ActionResult Edit(int idObject)
{
    if( user.OnwsObject(idObject) )
    {
        // lets edit
    }
    else
    {
        // ** SEND AN ERROR 403 ***
        // And let ASP.NET MVC with IIS manage that error to send
        // the requester to the Web.config defined error page.
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我尝试过类似的事情:(A)throw new HttpException(403, "Error description");:导致导致系统崩溃的未处理异常,(B)return HttpStatusResultCode(403, "Error description") …

c# asp.net-mvc iis-7 asp.net-mvc-4

5
推荐指数
2
解决办法
4571
查看次数

如果帐户处于非活动状态或从数据库中删除,ASP.NET用户仍可以登录

我有一个使用ASP.net的网站...我使用从Visual Web Developer访问的ASP.net网站管理工具来添加/修改用户对该网站的访问权限.我注意到,如果用户选中了"记住我"框以自动登录,则在删除cookie之前禁用或删除帐户无效.为什么是这样?可以在后面的代码中放置某种类型的逻辑,拒绝访问或将它们重定向到禁用或删除帐户的错误消息吗?

这是我目前在我的代码中所拥有的......

Protected Sub Page_Init(sender As Object, e As System.EventArgs) Handles Me.Init

    If User.Identity.IsAuthenticated Then
        Response.Redirect("~/homepage")
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

这也在Page_Init部分下面......

Protected Sub LoginUser_LoginError(sender As Object, e As System.EventArgs) Handles LoginUser.LoginError

    LoginUser.FailureText = "Invalid Username or Password - Please Try Again"

    Dim usrInfo As MembershipUser = Membership.GetUser(LoginUser.UserName)

    If usrInfo IsNot Nothing Then
        If usrInfo.IsLockedOut Then
            LoginUser.FailureText = "Your account has been locked - Contact the system administrator"
        ElseIf Not usrInfo.IsApproved Then
            LoginUser.FailureText = "Your account is disabled - …
Run Code Online (Sandbox Code Playgroud)

asp.net

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

jQuery是IE11中未定义的异常

在IE11中,我得到了这个例外

'jQuery'未定义

我没有在任何其他浏览器中收到此错误.导致问题的代码是

jQuery(document).ready(function(){
Run Code Online (Sandbox Code Playgroud)

任何人都知道为什么会这样,以及可能导致问题的原因是什么?

jquery internet-explorer-11

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

jQuery UI可调整大小处理命中区域/灵敏度/容差

我正在使用jQuery ui resizable,我(个人)发现它就像一个视频游戏来确定你试图调整元素大小时的命中区域.

似乎命中区域是div边缘的单个像素!WT ...

有谁知道如何增加手柄的命中区域/容差,这样你就不必像外科医生一样移动鼠标来抓住你的div的边缘?

jquery handles resizable

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

Visual Studio 2015方法信息

我正在使用Visual Studio 2015 RC一段时间,其中一个方便的功能是每个方法/类定义上方的一行文本,其中包含有关方法或类的信息(引用数,上次编辑日期,最后一个编辑器的名称) .

方法定义

但我刚刚安装了Visual Studio 2015 Enterprise,这些信息已经消失.有人知道如何重新启用此功能吗?

c# visual-studio codelens visual-studio-2015

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

是否可以创建自定义CodeLens装饰?

有能力创建可以通过显示的自己的装饰物CodeLens吗?

我在网上进行了快速搜索,但没有发现任何指示可以创建自定义CodeLens项的信息。是这样吗

codelens

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