public void AddLetter(DiaryW diary)
        {
            diary.Id = Guid.NewGuid();

            int activeMax = 0;

            if (Db.Diaries.Any())
            {
                activeMax = Db.Diaries.Max(d => d.Number);
            }

            int archivedMax = 0;

            if (Db.ArchivedDiaries.Any())
            {
                archivedMax = Db.ArchivedDiaries.Max(ad => ad.Number);
            }

            diary.Number = activeMax > archivedMax ? activeMax + 1 : archivedMax + 1;

            foreach (var item in diary.Products)
            {
                item.Id      = Guid.NewGuid();
                item.DiaryId = diary.Id;

                foreach (var pt in item.ProductTests)
                {
                    pt.Id        = Guid.NewGuid();
                    pt.ProductId = item.Id;
                }
            }

            Db.Diaries.Add(diary.ToBase());
            Db.SaveChanges();
        }
Beispiel #2
0
        public ActionResult Create()
        {
            ViewBag.ClientId = new SelectList(_rep.GetSelectListClients(false), "Id", "Name");
            var diary = new DiaryW();

            diary.AcceptanceDateAndTime = DateTime.Now;
            diary.LetterDate            = DateTime.Now;
            return(View(diary));
        }
Beispiel #3
0
        public ActionResult Create(DiaryW diary)
        {
            ModelState.Remove("LetterNumber");
            if (ModelState.IsValid && diary.Products.Count > 0)
            {
                _rep.AddLetter(diary);
                return(RedirectToAction("Index"));
            }

            ViewBag.ClientId = new SelectList(_rep.GetSelectListClients(false), "Id", "Name", diary.ClientId);

            return(View(diary));
        }
Beispiel #4
0
        public ActionResult Edit(DiaryW diary)
        {
            ModelState.Remove("LetterNumber");
            if (ModelState.IsValid)
            {
                _rep.Edit(diary);
                return(RedirectToAction("Index"));
            }

            ViewBag.ClientId = new SelectList(_rep.GetSelectListClients(false), "Id", "Name", diary.ClientId);
            ViewBag.Tests    = new SelectList(_rep.GetSelectListTests(), "Id", "Name");

            return(View(diary));
        }
Beispiel #5
0
        public static DiaryW ToDiaryWrapper(this Diary entity)
        {
            var diaryW = new DiaryW()
            {
                Id                    = entity.Id,
                Number                = entity.Number,
                LetterNumber          = entity.LetterNumber,
                LetterDate            = entity.LetterDate,
                AcceptanceDateAndTime = entity.AcceptanceDateAndTime,
                Contractor            = entity.Contractor,
                ClientId              = entity.ClientId,
                Comment               = entity.Comment,
                Client                = entity.Client,
                Request               = entity.Requests.FirstOrDefault(),
                Products              = entity.Products
            };

            return(diaryW);
        }
        public void Edit(DiaryW diaryW)
        {
            var diary = Db.Diaries.Single(c => c.Id == diaryW.Id);

            diary.LetterNumber          = diaryW.LetterNumber;
            diary.LetterDate            = diaryW.LetterDate;
            diary.Contractor            = diaryW.Contractor;
            diary.ClientId              = diaryW.ClientId;
            diary.AcceptanceDateAndTime = diaryW.AcceptanceDateAndTime;

            foreach (var item in diary.Products)
            {
                var pts = Db.ProductTests.Where(pt => pt.ProductId == item.Id);
                Db.ProductTests.RemoveRange(pts);
            }

            Db.Products.RemoveRange(diary.Products);

            foreach (var item in diaryW.Products)
            {
                item.Id      = Guid.NewGuid();
                item.DiaryId = diary.Id;

                foreach (var test in item.ProductTests)
                {
                    test.Id        = Guid.NewGuid();
                    test.ProductId = item.Id;
                }

                diary.Products.Add(item);
            }

            Db.SaveChanges();

            var request = diary.Requests.FirstOrDefault();

            if (request != null)
            {
                string charGenerated = _filesRepo.GenerateRequestListReport(diary.Id, request.Date, request.TestingPeriod ?? 0);
            }
        }