Пример #1
0
        public ActionResult Index(PlanViewModel model)
        {
            if (ModelState.IsValid)
            {
                Plan PlanToAdd = new Plan();
                PlanToAdd.PlanName     = model.PlanName;
                PlanToAdd.UserId       = Guid.Parse(_currentUser);
                PlanToAdd.CreationDate = DateTime.Now;

                var result = _plans.Add(PlanToAdd);
                return(RedirectToAction("Index", "Plans"));
            }

            return(View(model));
        }
        public void CanAddPlan()
        {
            var provider   = new PersistentPlanStorage(null);
            var cache      = new PlanCache(new ExpirationStrategyMock());
            var repository = new PlanRepository(new PlanStorage(cache, provider));
            var plan       = GenerateTestPlan();

            repository.Add(plan);

            repository.SaveChanges();

            var loadedPlan = provider.LoadPlan(Guid.Empty);

            AssertEquals(plan, loadedPlan);
            AssertEquals(plan, repository.GetById <PlanDO>(NewGuid(13)));
        }
        public void CanAddPlanWithEmptyDefaultIds()
        {
            var provider   = new PersistentPlanStorage(null);
            var cache      = new PlanCache(new ExpirationStrategyMock());
            var repository = new PlanRepository(new PlanStorage(cache, provider));

            var refPlan = GenerateTestPlan();

            PlanTreeHelper.Visit(refPlan, x => x.Id = Guid.Empty);

            repository.Add(refPlan);
            repository.SaveChanges();

            PlanTreeHelper.Visit(refPlan, x => Assert.IsTrue(x.Id != Guid.Empty));

            var loadedPlan = provider.LoadPlan(Guid.Empty);

            AssertEquals(refPlan, loadedPlan);
        }
Пример #4
0
 public OpResult SaveOrUpdate(Plans plan)
 {
     if (plan.Id.IsNullOrEmpty())
     {
         plan.Id        = Guid.NewGuid().ToString("N");
         plan.CreateDT  = DateTime.Now;
         plan.CreateUID = CurrentUser.UID;
         plan.Status    = 375;
         PlanRepository.Add(plan, false);
     }
     else
     {
         var source = PlanRepository.GetQuery(o => o.Id == plan.Id).Include(o => o.Attachments).Include(o => o.Replys).FirstOrDefault();
         plan.ToCopyProperty(source, new List <string>()
         {
             "CreateDT", "CreateUID", "Status"
         });
         if (plan.Attachments != null)
         {
             source.Attachments.AddRange(plan.Attachments);
         }
         if (plan.Replys != null)
         {
             source.Replys.AddRange(plan.Replys);
         }
     }
     if (plan.Attachments != null)
     {
         string path     = "";
         string fullPath = FileHelper.SaveAttachPath(ref path);
         for (var i = plan.Attachments.Count - 1; i >= 0; i--)
         {
             var attach = plan.Attachments[i];
             if (!attach.Bytes.Any())
             {
                 plan.Attachments.Remove(attach);
                 continue;
             }
             attach.CreateDT  = DateTime.Now;
             attach.CreateUID = CurrentUser.UID;
             attach.ItemId    = plan.Id;
             attach.NewName   = Guid.NewGuid().ToString("N") + "." + attach.ExtName;
             attach.Path      = path;
             using (var fs = new FileStream(fullPath + attach.NewName, FileMode.OpenOrCreate))
             {
                 fs.Write(attach.Bytes, 0, attach.Bytes.Length);
                 fs.Close();
             }
         }
     }
     if (plan.Replys != null)
     {
         plan.Replys.Each(o => {
             o.CreateDT  = DateTime.Now;
             o.Creater   = CurrentUser.FullName;
             o.CreateUID = CurrentUser.UID;
             o.PlanId    = plan.Id;
         });
     }
     PlanRepository.SaveChanges();
     return(OpResult.Success());
 }
Пример #5
0
 public void Add(Plan item)
 {
     planRepo.Add(item);
 }