public async Task <IActionResult> Create([FromBody] AddObjectDto objectDto) { var result = await _objectAdder.AddObject(objectDto); return(StatusCode(result, () => new { Message = "The object has been added", ObjectId = result.Result.Id })); }
public async Task <CommandResult <OfferedObject> > AddObject(AddObjectDto objectDto) { if (objectDto is null) { return(new CommandResult <OfferedObject>(new ErrorMessage { ErrorCode = "OBJECT.ADD.NULL", Message = "Please fill the field with data", StatusCode = System.Net.HttpStatusCode.BadRequest })); } if (objectDto.ObjectName.IsNullOrEmpty()) { return(new CommandResult <OfferedObject>(new ErrorMessage { ErrorCode = "OBJECT.ADD.OBJECTNAME.EMPTY", Message = "Please fill the 'object name' field", StatusCode = System.Net.HttpStatusCode.BadRequest })); } // Description could be null if (objectDto.Tags is null || objectDto.Tags.Count < 2) { return(new CommandResult <OfferedObject>(new ErrorMessage { ErrorCode = "OBJECT.ADD.TAGS.TOO.FEW", Message = "Please add at least two tags", StatusCode = System.Net.HttpStatusCode.BadRequest })); } var invalidTags = from t in objectDto.Tags where t.IsNullOrEmpty() || t.Length < 4 select t; if (invalidTags.Any()) { return(new CommandResult <OfferedObject>(new ErrorMessage { ErrorCode = "OBJECT.ADD.TAGS.INVALID", Message = "Please send a valid tags", StatusCode = System.Net.HttpStatusCode.BadRequest })); } var alreadyExistedTags = (from t in _tagRepo.Table where objectDto.Tags.Any(tt => tt == t.Name) && t.TagStatus == TagStatus.Ok select t).ToList(); // No Logic for not existed tags, just discard them. var objectTags = alreadyExistedTags.Select(t => new ObjectTag { TagId = t.TagId }).ToList(); var(login, ownerUser) = await _userDataManager.AddCurrentUserIfNeeded(); var @object = new OfferedObject { Description = objectDto.Description, Name = objectDto.ObjectName, PublishedAt = DateTime.UtcNow, Tags = objectTags, OwnerLoginId = login.LoginId, CurrentTransactionType = objectDto.Type }; _objectRepo.Add(@object); _objectRepo.SaveChanges(); return(new CommandResult <OfferedObject>(@object)); }
Task <CommandResult <OfferedObject> > IObjectService.AddObject(AddObjectDto objectDto) => _objectAdder8Deleter.AddObject(objectDto);
public Task <CommandResult <OfferedObject> > AddObject(AddObjectDto objectDto) { return(_objectService.AddObject(objectDto)); }