Example #1
0
        public async Task UpdateMailingAsync_UpdatesDataBase()
        {
            //arrange
            var worksId = new List <int>();

            worksId.Add(5);

            var oldWorkCount = _mailingsDb[1].Works.Count;
            var oldTextCount = _mailingsDb[1].MailText.Count;

            var model = new UpdateMailingModel()
            {
                MailingId = 1,
                StartDate = "10.01",
                WorksId   = worksId
            };

            //act
            await _service.UpdateAsync(model);

            // assert
            Assert.AreEqual("10.01", _mailingsDb[1].StartDate);
            Assert.IsTrue(_mailingsDb[1].Works.Count > oldWorkCount);
            Assert.IsTrue(_mailingsDb[1].MailText.Count > oldTextCount);
        }
Example #2
0
        // Olga, change
        public async Task UpdateAsync(UpdateMailingModel updateModel)
        {
            if (updateModel == null)
            {
                throw new ExceptionTypes.NullValueException();
            }
            if ((updateModel.FinishId.HasValue && updateModel.FinishId.Value < 1) ||
                updateModel.MailingId < 1)
            {
                throw new ExceptionTypes.IncorrectIdException();
            }


            if (!await _repository.ExistAsync(updateModel.MailingId))
            {
                throw new ExceptionTypes.MailingNotExistException();
            }

            CheckDate(updateModel.StartDate);

            if (updateModel.TextId != null)
            {
                GetElements <Text> getTexts = _textRepository.GetTextsAsyncById;
                await AddElement(updateModel.MailText, updateModel.TextId, getTexts, new ExceptionTypes.TextNotExistException());
            }

            if (updateModel.WorksId != null)
            {
                GetElements <ControlEvent> getElements = _eventRepository.GetControlEventsAsyncById;
                await AddElement(updateModel.Works, updateModel.WorksId, getElements, new ExceptionTypes.ControlEventNotExistException());

                foreach (var work in updateModel.Works)
                {
                    var text = await _textRepository.CreateTextAsync(new Text()
                    {
                        RememberAboutDeadline = "Контрольное мероприятие " + work.ControlEventId,
                        InfomationPart        = "Дедлайн:  " + work.Date
                    });

                    updateModel.MailText.Add(text);
                }
            }

            if (updateModel.FinishId.HasValue)
            {
                var control = await _eventRepository.GetControlEventAsync(updateModel.FinishId.Value);

                if (control == null)
                {
                    throw new ExceptionTypes.ControlEventNotExistException();
                }

                updateModel.FinishWork = control;
            }


            await _repository.UpdateAsync(updateModel);
        }
Example #3
0
        public async Task UpdateControlEventAsync_ThrowsExpected(UpdateMailingModel updateModel,
                                                                 Type type, string message)
        {
            //arrange

            //act
            var exception = Assert.ThrowsAsync(type, () => _service.UpdateAsync(updateModel));

            // assert
            Assert.AreEqual(message, exception.Message);
            Assert.AreEqual(exception.GetType(), type);
        }
 //public IActionResult AddWork([FromBody]int courseId, [FromBody]int workId, [FromBody]bool isFinishWork)
 public async Task <IActionResult> AddWorkAsync(UpdateMailingModel updateModel)
 {
     try
     {
         await _service.UpdateAsync(updateModel);
     }
     catch (ExceptionTypes.NotExistException er)
     {
         return(NotFound(er.StackTrace));
     }
     catch (Exception er)
     {
         return(BadRequest(er.StackTrace));
     }
     return(new OkResult());
 }
        public async Task UpdateAsync(UpdateMailingModel updateModel)
        {
            var mailing = await _dbContext.Mailings.FirstOrDefaultAsync(m => m.MailingId == updateModel.MailingId);

            if (updateModel.StartDate != null)
            {
                mailing.StartDate = updateModel.StartDate;
            }

            if (updateModel.HelloText != null)
            {
                mailing.HelloText = updateModel.HelloText;
            }

            if (updateModel.FinishWork != null)
            {
                mailing.FinishWork = updateModel.FinishWork;
            }

            if (updateModel.Works != null)
            {
                foreach (var work in updateModel.Works)
                {
                    mailing.Works.Add(work);
                }
            }

            if (updateModel.MailText != null)
            {
                foreach (var mText in updateModel.MailText)
                {
                    mailing.MailText.Add(mText);
                }
            }


            _dbContext.Mailings.Update(mailing);
            await _dbContext.SaveChangesAsync();
        }
Example #6
0
        private MailingsGeneratorDomain.Models.Mailing CreateUpdated(MailingsGeneratorDomain.Models.Mailing mailing,
                                                                     UpdateMailingModel model)
        {
            if (model.CourseName != null)
            {
                mailing.CourseName = model.CourseName;
            }

            if (model.FinishId.HasValue)
            {
                mailing.FinishWork = model.FinishWork;
            }

            if (model.HelloText != null)
            {
                mailing.HelloText = model.HelloText;
            }

            if (model.StartDate != null)
            {
                mailing.StartDate = model.StartDate;
            }

            if (model.Works != null)
            {
                foreach (var work in model.Works)
                {
                    mailing.Works.Add(work);
                }
            }
            if (model.MailText != null)
            {
                foreach (var text in model.MailText)
                {
                    mailing.MailText.Add(text);
                }
            }
            return(mailing);
        }