コード例 #1
0
        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));
        }
コード例 #2
0
        public async Task <IActionResult> DeleteObject([FromBody] DeleteObjectDto objectDto)
        {
            var result = await _objectDeleter.DeleteObject(objectDto);

            return(StatusCode(result, new
            {
                Message = "The object has been deleted."
            }));
        }
コード例 #3
0
        public async Task <IActionResult> DeleteObject([FromBody] DeleteObjectDto deleteObject)
        {
            var result = await _objectService.AuthorizedDelete(deleteObject);

            return(StatusCode(result, new
            {
                Message = "The object has been deleted."
            }));
        }
コード例 #4
0
        public async Task <CommandResult> DeleteObject(DeleteObjectDto objectDto)
        {
            var result = await _objectService.DeleteObject(objectDto);

            if (result.IsSuccessful)
            {
                PublishEvent(objectDto.ObjectId);
            }
            return(result);
        }
コード例 #5
0
        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
                }));
            }
        }
コード例 #6
0
 Task <CommandResult> IObjectService.DeleteObject(DeleteObjectDto objectDto) => _objectAdder8Deleter.DeleteObject(objectDto);
コード例 #7
0
 Task <CommandResult> IObjectService.AuthorizedDelete(DeleteObjectDto objectDto) => _objectAdder8Deleter.AuthorizedDelete(objectDto);