// GET: WorkContent/WeeklyPlan/Create
        public ActionResult Create()
        {
            var userId = new Guid(User.Identity.Name);
            var weeklyPlanServices = ServiceLocator.Instance.GetService<IWeeklyPlanServices>();
            var updateWeeklyTarget = new UpdateWeeklyTarget();

            updateWeeklyTarget = weeklyPlanServices.Get(userId);

            ViewBag.UpdateWeekTarget = new HtmlString(updateWeeklyTarget.ToJson());
            return PartialView();
        }
 public ActionResult Edit(UpdateWeeklyTarget updateWeeklyTarget)
 {
     try
     {
         // TODO: Add update logic here
         var userId = new Guid(User.Identity.Name);
         var weeklyPlanServices = ServiceLocator.Instance.GetService<IWeeklyPlanServices>();
         weeklyPlanServices.Update(updateWeeklyTarget, userId);
         var result = weeklyPlanServices.GetResult();
         return Json(result);
     }
     catch
     {
         return View();
     }
 }
        public void Update(UpdateWeeklyTarget updateWeeklyTarget, Guid userId)
        {
            using (var workContext = new DefaultContext())
            {
                var workCard = workContext.WorkCards.FirstOrDefault(x => x.AccountId == userId);
                if (workCard.Null())
                {
                    Message = "账号没有部门";
                    return;
                }
                updateWeeklyTarget.DepartmentId = workCard.DepartmentId;
                updateWeeklyTarget.AccountId = userId;

                var weekNum = DateTimeUtility.GetWeekOfYear(DateTime.Today);
                var dayOfWeek = DateTime.Now.DayOfWeek;
                var weekTarget = workContext.WeekTargets.FirstOrDefault(x => x.WeekNum == weekNum && x.DepartmentId == updateWeeklyTarget.DepartmentId);
                if (weekTarget.Null())
                {
                    Message = "修改日志不存在";
                    return;
                }
                if (((dayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour > 11) || dayOfWeek > DayOfWeek.Monday))
                {
                    Message = "周计划目标已经锁定,无法修改";
                    //Message = "周记已经被锁定无法总结";
                    return;
                }
                weekTarget = updateWeeklyTarget.UpdateWeekTarget(weekTarget);
                workContext.ModifiedModel(weekTarget);
                workContext.SaveChanges();
                Flag = true;
            }
        }
        public UpdateWeeklyTarget Get(Guid accountId)
        {
            var weekNum = DateTimeUtility.GetWeekOfYear(DateTime.Now);
            var updateWeeklyTarget = new UpdateWeeklyTarget();
            using (var workContext = new DefaultContext())
            {
                var workCard = (
                    from card in workContext.WorkCards
                    join department in workContext.Departments on card.DepartmentId equals department.ID
                    where card.AccountId == accountId
                    select new
                    {
                        card,
                        department
                    }).FirstOrDefault();

                if (workCard.Null())
                {
                    return updateWeeklyTarget;
                }
                var weeklyPaln = (
                    from target in workContext.WeekTargets
                    let summ = workContext.WeekSummaries.FirstOrDefault(x => x.ID == target.ID)
                    where target.DepartmentId == workCard.card.DepartmentId && target.WeekNum == weekNum
                    select new
                    {
                        target,
                        summ
                    }).FirstOrDefault();
                updateWeeklyTarget = UpdateWeeklyTarget.CreateWeeklyTarget(weeklyPaln?.target);
                updateWeeklyTarget.AccountId = accountId;
                updateWeeklyTarget.DepartmentId = workCard.department.ID;
                return updateWeeklyTarget;
            }
        }