public async Task <CommandResult> DeleteObject(DeleteObjectDto objectDto) { if (objectDto is null) { return(new CommandResult(new ErrorMessage { ErrorCode = "CATALOG.OBJECT.DELETE.NULL", Message = "Please send a valid data", StatusCode = System.Net.HttpStatusCode.BadRequest })); } var objectOwner = from o in _objectRepo.Table where o.OfferedObjectId == objectDto.ObjectId select o.OwnerLogin.User; var currentUser = _userDataManager.GetCuurentUser(); if (currentUser is null || currentUser.UserId != objectOwner.FirstOrDefault()?.UserId.ToString()) { return(new CommandResult(new ErrorMessage { ErrorCode = "CATALOG.OBJECT.DELETE.UNAUTHORIZED", Message = "You are unauthorized to delete this object", StatusCode = System.Net.HttpStatusCode.Unauthorized })); } return(await AuthorizedDelete(objectDto)); }
public async Task <IActionResult> DeleteObject([FromBody] DeleteObjectDto objectDto) { var result = await _objectDeleter.DeleteObject(objectDto); return(StatusCode(result, new { Message = "The object has been deleted." })); }
public async Task <IActionResult> DeleteObject([FromBody] DeleteObjectDto deleteObject) { var result = await _objectService.AuthorizedDelete(deleteObject); return(StatusCode(result, new { Message = "The object has been deleted." })); }
public async Task <CommandResult> DeleteObject(DeleteObjectDto objectDto) { var result = await _objectService.DeleteObject(objectDto); if (result.IsSuccessful) { PublishEvent(objectDto.ObjectId); } return(result); }
public async Task <CommandResult> AuthorizedDelete(DeleteObjectDto objectDto) { if (objectDto is null) { return(new CommandResult(new ErrorMessage { ErrorCode = "CATALOG.OBJECT.DELETE.NULL", Message = "Please send a valid data", StatusCode = System.Net.HttpStatusCode.BadRequest })); } var objectToDelete = _objectRepo.Get(objectDto.ObjectId); if (objectToDelete is null || objectToDelete.ObjectStatus != ObjectStatus.Available) { return(new CommandResult(new ErrorMessage { ErrorCode = "CATALOG.OBJECT.DELETE.NOTFOUND", Message = "The obect you are trying to delete does not exists", StatusCode = System.Net.HttpStatusCode.BadRequest })); } objectToDelete.ObjectStatus = ObjectStatus.Deleted; try { await _objectRepo.SaveChangesAsync(); return(new CommandResult()); } catch (Exception e) { _logger.LogError(e, $"There were a problem deleting the object:{objectDto.ObjectId}"); return(new CommandResult(new ErrorMessage { ErrorCode = "CATALOG.OBJECT.DELETE.INTERNAL.ERROR", Message = "There were an error deleting your object", StatusCode = System.Net.HttpStatusCode.InternalServerError })); } }
Task <CommandResult> IObjectService.DeleteObject(DeleteObjectDto objectDto) => _objectAdder8Deleter.DeleteObject(objectDto);
Task <CommandResult> IObjectService.AuthorizedDelete(DeleteObjectDto objectDto) => _objectAdder8Deleter.AuthorizedDelete(objectDto);