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); }