public override async Task <Maybe <Pub> > UpdateAsync(Pub updatedPub) { var existingPub = await _pubRepository.GetSingleOrMaybeAsync( p => p.Id == updatedPub.Id, p => p.Address); if (!existingPub.HasValue) { return(Maybe <Pub> .Nothing); } updatedPub.Address.Id = existingPub.Value.Address.Id; return(existingPub.Value.AccountId == updatedPub.AccountId ? await _pubRepository.UpdateAsync(updatedPub) : throw new UserNotAllowedToUpdatePubException(updatedPub.Id, updatedPub.AccountId)); }
public async Task <Maybe <Pub> > RatePub(PubRate rate) { var pub = await _pubRepository.GetAsync(rate.PubId); if (!pub.HasValue) { return(pub); } pub.Value.PubRates.Add(rate); return(await _pubRepository.UpdateAsync(pub.Value)); }
public async Task <IActionResult> Edit(Pub model) { try { if (ModelState.IsValid) { Pub p = await _pubRepo.GetByIdAsync(model.Id); if (string.IsNullOrEmpty(model.Name)) { p.Name = string.Empty; } else { p.Name = model.Name.Trim(); } if (string.IsNullOrEmpty(model.Phone)) { p.Phone = string.Empty; } else { p.Phone = model.Phone.Trim(); } if (string.IsNullOrEmpty(model.Address1)) { p.Address1 = string.Empty; } else { p.Address1 = model.Address1.Trim(); } if (string.IsNullOrEmpty(model.Address2)) { p.Address2 = string.Empty; } else { p.Address2 = model.Address2.Trim(); } if (string.IsNullOrEmpty(model.City)) { p.City = string.Empty; } else { p.City = model.City.Trim(); } if (string.IsNullOrEmpty(model.ProvState)) { p.ProvState = string.Empty; } else { p.ProvState = model.ProvState.Trim(); } if (string.IsNullOrEmpty(model.PostalZip)) { p.PostalZip = string.Empty; } else { p.PostalZip = model.PostalZip.Trim(); } if (string.IsNullOrEmpty(model.Country)) { p.Country = string.Empty; } else { p.Country = model.Country.Trim(); } // URLs if (string.IsNullOrEmpty(model.UrlWebsite)) { p.UrlWebsite = string.Empty; } else { p.UrlWebsite = model.UrlWebsite.Trim(); } if (string.IsNullOrEmpty(model.UrlInstagram)) { p.UrlInstagram = string.Empty; } else { p.UrlInstagram = model.UrlInstagram.Trim(); } if (string.IsNullOrEmpty(model.UrlFacebook)) { p.UrlFacebook = string.Empty; } else { p.UrlFacebook = model.UrlFacebook.Trim(); } if (string.IsNullOrEmpty(model.UrlTwitter)) { p.UrlTwitter = string.Empty; } else { p.UrlTwitter = model.UrlTwitter.Trim(); } if (string.IsNullOrEmpty(model.UrlMenu)) { p.UrlMenu = string.Empty; } else { p.UrlMenu = model.UrlMenu.Trim(); } // Geocode if (string.IsNullOrEmpty(model.Latitude)) { p.Latitude = string.Empty; } else { p.Latitude = model.Latitude.Trim(); } if (string.IsNullOrEmpty(model.Longitude)) { p.Longitude = string.Empty; } else { p.Longitude = model.Longitude.Trim(); } await _pubRepo.UpdateAsync(p); return(RedirectToAction("Index", "Pub")); } return(View(model)); } catch (Exception e) { Console.WriteLine(e.Message); return(null); } }