예제 #1
0
        public async Task <GenericResult> Save(Pet pet, IFileListEntry photo)
        {
            var result  = new GenericResult();
            var appUser = await _applicationUserService.GetCurrent();

            if (appUser == null)
            {
                result.AddError(ErrorInvalidUser);
                return(result);
            }

            pet.UserId = appUser.Id;
            if (photo != null) // Puede ser que la imagen sea nula porque estemos editando y no cambiamos la foto
            {
                var resultImage = await _fileService.UploadPetPhotoAsync(photo);

                if (resultImage.Success)
                {
                    pet.Photo = resultImage.Value; // Si la imagen se subio bien le asignamos la url a la mascota
                }
                else
                {
                    result.AddRange(resultImage.Errors);
                }
            }

            result.Errors.AddRange(CheckPet(pet)); // Si devuelve errores los agrego para mostrarlos
            if (result.Success)                    // Si no hay errores guardo o actualizo
            {
                if (pet.Id > 0)                    // Si estamos editando
                {
                    result.AddRange((await Update(pet)).Errors);
                }
                else if (!await Insert(pet)) // Si estamos guardando
                {
                    result.AddError(ErrorSaving);
                }
            }

            return(result);
        }