public ActionResult SendProtocol(PP_Protocols protocol) { try { var user = UserHelper.GetCurrentEmployee(); bool isNew = !(protocol.Id != Guid.Empty); //save new Guid protocolId = isNew ? Guid.NewGuid() : protocol.Id; if (isNew) { protocol.Id = protocolId; } protocol.OwnerId = user.Id; protocol.ProtocolDate = DateTime.Now; protocol.CreatedDate = DateTime.Now; if (!isNew) { db.PP_ProtocolComissionMembers.RemoveRange(db.PP_ProtocolComissionMembers.Where(x => x.ProtocolId == protocolId)); } foreach (var member in protocol.PP_ProtocolComissionMembers) { member.Id = Guid.NewGuid(); member.CreatedDate = DateTime.Now; member.ProtocolId = protocolId; db.PP_ProtocolComissionMembers.Add(member); } if (!isNew) { db.PP_ProtocolProductPrices.RemoveRange(db.PP_ProtocolProductPrices.Where(x => x.ProtocolId == protocolId)); } foreach (var productPrice in protocol.PP_ProtocolProductPrices) { productPrice.Id = Guid.NewGuid(); productPrice.CreatedDate = DateTime.Now; productPrice.ProtocolId = protocolId; db.PP_ProtocolProductPrices.Add(productPrice); } //db.Entry(protocol).State = EntityState.Modified; if (isNew) { db.PP_Protocols.Add(protocol); } else { db.Entry(protocol).State = EntityState.Modified; } db.SaveChanges(); return(Json("Ok", JsonRequestBehavior.AllowGet)); } catch (Exception ex) { LogHelper.Log.Error("Не удалось сохранить протокол", ex); throw; } }
public ActionResult ProtocolForm(Guid?id) { var user = UserHelper.GetCurrentEmployee(); var ppRepository = new PriceProjectRepository(); PP_Protocols protocol; if (id.HasValue) { protocol = db.PP_Protocols.FirstOrDefault(x => x.Id == id.Value); if (protocol == null) { LogHelper.Log.ErrorFormat("Не удалось найти протокол по идентификатору {0}", id.Value); return(null); } } else { protocol = new PP_Protocols { ProtocolDate = DateTime.Now, Type = (int)ProtocolType.Protocol1, Status = (int)ProtocolStatus.Draft, Number = ppRepository.GenerateProtocolNumber(), IsImn = false }; } var model = new ProtocolModel { Guid = Guid.NewGuid(), Protocol = protocol }; if (protocol.Status == (int)ProtocolStatus.Draft) { ViewBag.Leadership = ppRepository.GetLeadership().ToList().Select(e => new SelectListItem { Value = e.Id.ToString(), Text = e.FullName }).ToList(); var list = new List <SelectListItem>(); list.AddRange(EnumHelper.GetDisplayNameEnumList <ProtocolType>().ToList().Select(x => new SelectListItem { Value = x.Key.ToString(), Text = x.Value })); ViewBag.ProtocolTypes = list; ViewBag.Requesters = ppRepository.GetRequesters().ToList().Select(e => new SelectListItem { Value = e.Id.ToString(), Text = e.DisplayName }).ToList(); return(PartialView(model)); } else { ViewBag.HasEdit = model.Protocol.OwnerId == user.Id; var file = FileHelper.GetProtocolAttachFile(db, protocol.Id); if (file != null) { ViewBag.AttFileName = file.Name; ViewBag.AttFileExtension = file.Extension; ViewBag.AttFileSize = file.Length; } var employee = ppRepository.GetEmployeeById(protocol.RequesterId.Value); ViewBag.RequesterDisplayName = employee != null ? employee.DisplayName : ""; employee = ppRepository.GetEmployeeById(protocol.ChiefId.Value); ViewBag.ChiefDisplayName = employee != null ? employee.DisplayName : ""; ViewBag.ComissionMembers = string.Join("<br/>", protocol.PP_ProtocolComissionMembers.Select(x => x.Employee.FullName).ToArray()); return(PartialView("ProtocolFormView", model)); } }