public async Task <ValidationResultModel> ValidateAsync(Guid orgId, PartyCategoryDto model) { // Reset validation errors model.Errors.Clear(); #region Formatting: Cleansing and formatting model.Code = model.Code.ToUpper(); model.Name = model.Name.TrimExtraSpaces(); model.Description = model.Description.TrimExtraSpaces(); #endregion #region Validation: Duplicate // Check code duplicate var duplCode = new Duplicate { Field = DuplicateField.Code, Value = model.Code, Id = model.Id, ParentId = orgId }; if (await ExistsAsync(duplCode)) { model.Errors.AddError(nameof(model.Code), $"{nameof(model.Code)} '{model.Code}' already exists"); } // Check name duplicate var duplName = new Duplicate { Field = DuplicateField.Name, Value = model.Name, Id = model.Id, ParentId = orgId }; if (await ExistsAsync(duplName)) { model.Errors.AddError(nameof(model.Name), $"{nameof(model.Name)} '{model.Name}' already exists"); } #endregion return(model.Errors); }
public async Task UpdateAsync(Guid id, PartyCategoryDto model) { if (id != model.Id) { throw new ArgumentException("Party category id mismatch"); } PartyCategory category = _mapper.Map <PartyCategory>(model); category.DateModified = DateTime.UtcNow; _context.PartyCategories.Update(category); await _context.SaveChangesAsync(); //return _mapper.Map<PartyCategoryDto>(category); }
public async Task <PartyCategoryDto> CreateAsync(Guid orgId, PartyCategoryDto model) { if (orgId == null || orgId == Guid.Empty) { throw new ArgumentNullException("orgId", "Org id is missing"); } PartyCategory category = _mapper.Map <PartyCategory>(model); category.OrgId = orgId; category.DateCreated = DateTime.UtcNow; category.DateModified = null; await _context.PartyCategories.AddAsync(category); await _context.SaveChangesAsync(); return(_mapper.Map <PartyCategoryDto>(category)); }
public async Task <PartyCategoryDto> GetByIdAsync(Guid id, bool includeChildren = false) { if (id == null || id == Guid.Empty) { throw new ArgumentNullException("id", "Id is missing"); } PartyCategoryDto category = await _context.PartyCategories .AsNoTracking() .ProjectTo <PartyCategoryDto>(_mapper.ConfigurationProvider) .FirstOrDefaultAsync(pc => pc.Id == id); if (category != null) { return(category); } return(null); //throw new NotFoundException("Party category not found"); }