public void CreateLetter(int stageId, Guid authorId, Guid declarationId, string subjectCode, string text) { var subject = AppContext.EXP_DIC_CorespondenceSubject.FirstOrDefault(e => e.Code == subjectCode && !e.IsDeleted); var mail = new EXP_DrugCorespondence { Id = Guid.NewGuid(), AuthorId = authorId, DateCreate = DateTime.Now, DrugDeclarationId = declarationId, KindId = CodeConstManager.CORESPONDENCE_KIND_ELECTRONIC, TypeId = CodeConstManager.CORESPONDENCE_TYPE_INBOX, StageId = stageId, SubjectId = subject.Id, Subject = subject.NameRu, Note = text }; var status = new ReadOnlyDictionaryRepository().GetDictionaries(CodeConstManager.STATUS_DRAFT).FirstOrDefault(); if (status != null) { mail.StatusId = status.Id; } AppContext.EXP_DrugCorespondence.Add(mail); AppContext.SaveChanges(); }
public CorespondenceEntity CreateMailRemark(string id, Employee employee) { var model = GetExpertiseStageById(new Guid(id)); if (model == null) { return(new CorespondenceEntity() { IsSuccess = false, StageType = 0 }); } var coresponce = new CorespondenceEntity { StageType = model.StageId }; var remarks = AppContext.EXP_ExpertiseStageRemark.Where(e => e.StageId == model.Id && !e.IsReadOnly && e.CorespondenceId == null); var modelID = Guid.NewGuid(); var mail = new EXP_DrugCorespondence { Id = modelID, AuthorId = employee.Id, DateCreate = DateTime.Now, DrugDeclarationId = model.DeclarationId, KindId = CodeConstManager.CORESPONDENCE_KIND_ELECTRONIC, TypeId = CodeConstManager.CORESPONDENCE_TYPE_INBOX, StageId = model.StageId, SubjectId = AppContext.EXP_DIC_CorespondenceSubject.FirstOrDefault(e => e.Code == EXP_DIC_CorespondenceSubject.Remarks && !e.IsDeleted).Id }; var status = new ReadOnlyDictionaryRepository().GetDictionaries(CodeConstManager.STATUS_DRAFT).FirstOrDefault(); if (status != null) { mail.StatusId = status.Id; } var builder = new StringBuilder("Список замечании:"); var index = 1; foreach (var expDrugPrimaryRemark in remarks) { var entity = new EXP_DrugCorespondenceRemark { AnswerRemark = expDrugPrimaryRemark.AnswerRemark, ExecuterId = expDrugPrimaryRemark.ExecuterId, FixedDate = expDrugPrimaryRemark.FixedDate, IsAccepted = expDrugPrimaryRemark.IsAccepted, IsFixed = expDrugPrimaryRemark.IsFixed, NameRemark = expDrugPrimaryRemark.NameRemark, Note = expDrugPrimaryRemark.Note, RemarkDate = expDrugPrimaryRemark.RemarkDate, RemarkTypeId = expDrugPrimaryRemark.RemarkTypeId, }; mail.EXP_DrugCorespondenceRemark.Add(entity); expDrugPrimaryRemark.IsReadOnly = true; expDrugPrimaryRemark.CorespondenceId = modelID.ToString(); builder.AppendLine(index + ". " + expDrugPrimaryRemark.NameRemark + ";"); index++; } var stageType = new ReadOnlyDictionaryRepository().GetDicStageById(model.StageId); mail.Subject = "Замечания с экспертизы (" + stageType.NameRu + ")"; mail.Note = builder.ToString(); AppContext.EXP_DrugCorespondence.Add(mail); AppContext.SaveChanges(); coresponce.IsSuccess = true; return(coresponce); }