private ValidationDictionary <ViewModelNewsCategory> SaveNewsCategory(int clientId, ViewModelNewsCategory viewModelNewsCategory) { var validator = new ValidationDictionary <ViewModelNewsCategory>(); if (viewModelNewsCategory == null) { validator.IsValid = false; validator.AddError("", "The XX you're trying to save is null"); return(validator); } // rule based here var existingWithSameName = _newsCategoryRepository .FilterBy(o => o.NewsCategoryName.ToLower() == viewModelNewsCategory.NewsCategoryName.ToLower() && o.ClientId == clientId && !o.IsDeleted) .ToList(); if (existingWithSameName.Any()) { var haveSameId = viewModelNewsCategory.NewsCategoryId <= 0 || (viewModelNewsCategory.NewsCategoryId > 0 && existingWithSameName.Any(o => o.NewsCategoryId != viewModelNewsCategory.NewsCategoryId)); if (haveSameId) { validator.IsValid = false; validator.AddError("", "News Category with same name is already existed"); return(validator); } } NewsCategory newsCategory; if (viewModelNewsCategory.NewsCategoryId > 0) { newsCategory = _newsCategoryRepository.FindBy(o => o.NewsCategoryId == viewModelNewsCategory.NewsCategoryId); var dateCreated = newsCategory.DateCreated; newsCategory.InjectFrom(viewModelNewsCategory); newsCategory.ClientId = clientId; newsCategory.DateLastUpdated = DateTime.UtcNow; newsCategory.DateCreated = dateCreated; _newsCategoryRepository.Update(newsCategory); } else { newsCategory = new NewsCategory(); newsCategory.InjectFrom(viewModelNewsCategory); newsCategory.DateCreated = DateTime.UtcNow; newsCategory.DateLastUpdated = DateTime.UtcNow; newsCategory.ClientId = clientId; _newsCategoryRepository.Add(newsCategory); } var rawPinged = _newsCategoryRepository.FindBy(o => o.NewsCategoryId == newsCategory.NewsCategoryId && o.ClientId == clientId); var pinged = new ViewModelNewsCategory().InjectFrom(rawPinged) as ViewModelNewsCategory; validator.IsValid = true; validator.RelatedObject = pinged; return(validator); }
public IEnumerable <ViewModelNewsCategory> GetNewsCategories(int clientId) { var raw = _newsCategoryRepository.FilterBy(o => !o.IsDeleted && o.ClientId == clientId).ToList(); var converted = raw.Select(item => { var viewModelNewsCategory = new ViewModelNewsCategory(); viewModelNewsCategory.InjectFrom(item); return(viewModelNewsCategory); }).ToList(); return(converted); }
public Response <DtoBuncisNewsCategory> BPUpdateNewsCategory(int clientId, DtoBuncisNewsCategory newsCategory) { var service = IoC.Resolve <INewsService>(); var viewModel = new ViewModelNewsCategory().InjectFrom <CloneInjection>(newsCategory) as ViewModelNewsCategory; var result = service.UpdateNewsCategory(clientId, viewModel); var response = new Response <DtoBuncisNewsCategory>(); response.IsSuccess = result.IsValid; response.Message = result.ValidationSummaryToString(); if (response.IsSuccess) { var responseObject = new DtoBuncisNewsCategory().InjectFrom <CloneInjection>(result.RelatedObject) as DtoBuncisNewsCategory; response.ResponseObject = responseObject; } return(response); }
public ValidationDictionary <ViewModelNewsCategory> UpdateNewsCategory(int clientId, ViewModelNewsCategory viewModelNewsCategory) { return(SaveNewsCategory(clientId, viewModelNewsCategory)); }