public async Task <bool> EditSubscription(UpdateSubscriptionModel model, string deviceId) { var guest = await _repository.Filter <Guest>(g => g.DeviceId == deviceId).FirstOrDefaultAsync(); var otherSetting = await _repository.Filter <PersonOtherSetting>(pos => pos.GuestId == guest.Id).FirstOrDefaultAsync(); var settings = await _repository.Filter <PersonSetting>(x => x.GuestId == guest.Id).ToListAsync(); _repository.HardDeleteRange(settings); foreach (var variable in model.Subscriptions) { _repository.Create(new PersonSetting { GuestId = guest.Id, SubscriptionsType = variable }); } if (otherSetting != null) { otherSetting.AreaUnit = model.AreaUnit; otherSetting.Language = model.Language; _repository.Update(otherSetting); } else { await _repository.CreateAsync(new PersonOtherSetting { GuestId = guest.Id, Language = model.Language }); } guest.CurrencyId = model.CurrencyId; _repository.Update(guest); if (guest.CurrencyId == 0) { throw new Exception("Currency id can not be 0!"); } await _repository.SaveChangesAsync(); return(true); }
public async Task <EmptyResult> Index(UpdateSubscriptionModel model) { await this.presentationService.UpdateSubscriptionsAsync(model?.SelectedItems); return(new EmptyResult()); }
public async Task <IActionResult> EditSubscription([FromBody] UpdateSubscriptionModel model) { return(await MakeActionCallAsync(async() => await _service.EditSubscription(model, GetDeviceId()))); }