示例#1
0
        public async Task <IHttpActionResult> Update(PlaylistResultModel model)
        {
            var serviceResult = new ServiceResult <PlaylistModel>();

            if (!ModelState.IsValid)
            {
                serviceResult.Success           = false;
                serviceResult.Error.Description = "Model is not valid.";
                serviceResult.Error.Code        = ErrorStatusCode.BudRequest;
                return(ServiceResult(serviceResult));
            }

            if (model.OwnerId != User.Identity.GetUserId())
            {
                serviceResult.Success           = false;
                serviceResult.Error.Description = "Id of owner and id of current user not equals.";
                serviceResult.Error.Code        = ErrorStatusCode.BudRequest;
                return(ServiceResult(serviceResult));
            }

            var result = await _playlistService.Update(model);

            serviceResult.Success = result.Success;
            if (result.Success)
            {
                serviceResult.Result = model;
            }
            else
            {
                serviceResult.Error = result.Error;
            }

            return(ServiceResult(serviceResult));
        }
        public async Task <ServiceResult> Update(PlaylistResultModel model)
        {
            var serviceResult = new ServiceResult();

            var playlistResult = await this.Get(model.Id);

            if (!playlistResult.Success)
            {
                serviceResult.Error = playlistResult.Error;
                return(serviceResult);
            }

            var songsResult = model.Songs == null || model.Songs.Count == 0 ? new DatabaseManyResult <SongModel>()
            {
                Success = true, Entities = null
            } : await _songRepository.GetMany(model.Songs, 0, 50);

            if (!songsResult.Success)
            {
                serviceResult.Error.Code        = ErrorStatusCode.BudRequest;
                serviceResult.Error.Description = songsResult.Message;
                return(serviceResult);
            }

            playlistResult.Result.Name  = model.Name;
            playlistResult.Result.ArtId = model.ArtId;
            playlistResult.Result.Songs = songsResult.Entities;

            var result = await _playlistRepository.Update(playlistResult.Result);

            serviceResult.Success = result.Success;
            if (!result.Success)
            {
                serviceResult.Error.Code        = ErrorStatusCode.BudRequest;
                serviceResult.Error.Description = result.Message;
            }
            return(serviceResult);
        }
        public async Task <ServiceResult <PlaylistResultModel> > Update(PlaylistResultModel model)
        {
            var serviceResult = new ServiceResult <PlaylistResultModel>();

            var getAuthorizedUserServiceResult = await _authorizedUserService.Get();

            if (getAuthorizedUserServiceResult.Success)
            {
                var authorizedUser = getAuthorizedUserServiceResult.Result;

                var restUrl = $"{_ipServerPort}{_apiControllerRoutePrefix}/Update";

                var restServiceResult = await _restClient.MakeApiCall <PlaylistResultModel>
                                        (
                    restUrl,
                    HttpMethod.Post,
                    data : model,
                    accessToken : authorizedUser.AccessToken
                                        );

                if (!restServiceResult.Success)
                {
                    serviceResult.Error = restServiceResult.Error;
                }
                else
                {
                    serviceResult.Success = true;
                    serviceResult.Result  = restServiceResult.Result;
                }
            }
            else
            {
                serviceResult.Error = getAuthorizedUserServiceResult.Error;
            }

            return(serviceResult);
        }
示例#4
0
        public async Task <IHttpActionResult> Add(PlaylistResultModel model)
        {
            var serviceResult = new ServiceResult <PlaylistModel>();

            ModelState.Remove("model.Id");

            if (!ModelState.IsValid)
            {
                serviceResult.Success           = false;
                serviceResult.Error.Description = "Model is not valid.";
                serviceResult.Error.Code        = ErrorStatusCode.BudRequest;
                return(ServiceResult(serviceResult));
            }

            if (model.OwnerId != User.Identity.GetUserId())
            {
                serviceResult.Success           = false;
                serviceResult.Error.Description = "Id of owner and id of current user not equals.";
                serviceResult.Error.Code        = ErrorStatusCode.BudRequest;
                return(ServiceResult(serviceResult));
            }

            model.Id = System.Guid.NewGuid().ToString("N").Substring(0, 24);

            var result = await _playlistService.Add(model);

            serviceResult.Success = result.Success;
            if (result.Success)
            {
                serviceResult.Result = model;
            }
            else
            {
                serviceResult.Error = result.Error;
            }
            return(ServiceResult(serviceResult));
        }
        public async Task <ServiceResult> Add(PlaylistResultModel model)
        {
            var serviceResult = new ServiceResult();

            var songsResult = model.Songs == null || model.Songs.Count == 0 ? new DatabaseManyResult <SongModel>()
            {
                Success = true, Entities = null
            } : await _songRepository.GetMany(model.Songs, 0, 50);

            if (!songsResult.Success)
            {
                serviceResult.Error.Code        = ErrorStatusCode.BudRequest;
                serviceResult.Error.Description = songsResult.Message;
                return(serviceResult);
            }

            var modelObject = new PlaylistModel()
            {
                Id      = model.Id,
                Name    = model.Name,
                ArtId   = model.ArtId,
                OwnerId = model.OwnerId,
                Songs   = songsResult.Entities
            };

            var result = await _playlistRepository.Add(modelObject);

            serviceResult.Success = result.Success;
            if (!result.Success)
            {
                serviceResult.Error.Code        = ErrorStatusCode.BudRequest;
                serviceResult.Error.Description = result.Message;
            }

            return(serviceResult);
        }