Exemplo n.º 1
0
        public void DeleteLanguageValidatorShouldReturnFalseWhenIdIsNull()
        {
            IValidator <DeleteLanguageRequest> validator = new DeleteLanguageValidator();

            var request = new DeleteLanguageRequest()
            {
                Id = null
            };

            Assert.IsFalse(validator.IsRequestValid(request));
        }
Exemplo n.º 2
0
        public void DeleteLanguageValidatorShouldReturnTrueWithValidRequest()
        {
            IValidator <DeleteLanguageRequest> validator = new DeleteLanguageValidator();

            var request = new DeleteLanguageRequest()
            {
                Id = "1"
            };

            Assert.IsTrue(validator.IsRequestValid(request));
        }
Exemplo n.º 3
0
        public DeleteLanguageResponse DeleteLnaguage(DeleteLanguageRequest request)
        {
            DeleteLanguageResponse response = new DeleteLanguageResponse();

            try
            {
                _languageRepository.Delete(request.LanguageId);
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
            }
            return(response);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Deletes the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns><c>DeleteLanguageResponse</c> with success status.</returns>
        public DeleteLanguageResponse Delete(DeleteLanguageRequest request)
        {
            if (request.Data == null || request.Id.HasDefaultValue())
            {
                return(new DeleteLanguageResponse {
                    Data = false
                });
            }

            var futurePages = repository.AsQueryable <Module.Root.Models.Page>()
                              .Where(p => p.Language != null && p.Language.Id == request.Id)
                              .Select(p => p.Id)
                              .ToFuture();

            var itemToDelete = repository
                               .AsQueryable <Module.Root.Models.Language>()
                               .Where(p => p.Id == request.Id)
                               .ToFuture()
                               .FirstOne();

            if (request.Data.Version > 0 && itemToDelete.Version != request.Data.Version)
            {
                throw new ConcurrentDataException(itemToDelete);
            }

            if (futurePages.ToList().Any())
            {
                var message = string.Format("Cannot delete language {0}, because it's used in pages.", itemToDelete.Name);
                throw new CmsApiValidationException(message);
            }

            unitOfWork.BeginTransaction();

            repository.Delete(itemToDelete);

            unitOfWork.Commit();

            Events.RootEvents.Instance.OnLanguageDeleted(itemToDelete);

            return(new DeleteLanguageResponse {
                Data = true
            });
        }
Exemplo n.º 5
0
        public ActionResult Delete(int id)
        {
            DeleteLanguageRequest request = new DeleteLanguageRequest()
            {
                LanguageId = id
            };
            DeleteLanguageResponse response = _languageService.DeleteLnaguage(request);

            if (response.Success)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                LanguageListPageViewModel model = new LanguageListPageViewModel();
                model.Success = false;
                model.Message = response.Message;
                return(View("Index", model));
            }
        }
Exemplo n.º 6
0
        public void Setup()
        {
            AutoMapperConfig.RegisterMappings();

            this.context = new MongoContextTestHelper();
            this.repo    = new LanguageRepository(context);

            RemoveAllTestLanguages();
            InsertTestLanguage();
            var language = context.Collection <LanguageEntity>()?.Find(x => true).FirstOrDefault();

            this.request = new DeleteLanguageRequest()
            {
                Id = language.Id
            };

            this.trueValidator = Substitute.For <IValidator <DeleteLanguageRequest> >();
            trueValidator.IsRequestValid(request).Returns(true);

            this.falseValidator = Substitute.For <IValidator <DeleteLanguageRequest> >();
            falseValidator.IsRequestValid(request).Returns(false);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Deletes the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns><c>DeleteLanguageResponse</c> with success status.</returns>
        public DeleteLanguageResponse Delete(DeleteLanguageRequest request)
        {
            if (request.Data == null || request.Id.HasDefaultValue())
            {
                return new DeleteLanguageResponse { Data = false };
            }

            var futurePages = repository.AsQueryable<Module.Root.Models.Page>()
                .Where(p => p.Language != null && p.Language.Id == request.Id)
                .Select(p => p.Id)
                .ToFuture();

            var itemToDelete = repository
                .AsQueryable<Module.Root.Models.Language>()
                .Where(p => p.Id == request.Id)
                .ToFuture()
                .FirstOne();

            if (request.Data.Version > 0 && itemToDelete.Version != request.Data.Version)
            {
                throw new ConcurrentDataException(itemToDelete);
            }

            if (futurePages.ToList().Any())
            {
                var message = string.Format("Cannot delete language {0}, because it's used in pages.", itemToDelete.Name);
                throw new CmsApiValidationException(message);
            }

            unitOfWork.BeginTransaction();

            repository.Delete(itemToDelete);

            unitOfWork.Commit();

            Events.RootEvents.Instance.OnLanguageDeleted(itemToDelete);

            return new DeleteLanguageResponse { Data = true };
        }
Exemplo n.º 8
0
        public override async Task <Empty> DeleteLanguage(DeleteLanguageRequest deleteLanguageRequest, ServerCallContext context)
        {
            var deleteLanguage = _mapper.Map <DeleteLanguageRequest, DeleteLanguage>(deleteLanguageRequest);

            return(_mapper.Map <Unit, Empty>(await _mediator.Send(deleteLanguage)));
        }
Exemplo n.º 9
0
 public void Delete([FromBody] DeleteLanguageRequest request)
 {
     deleteLanguageCommand.Execute(request);
 }