Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
        }