public async Task <IHttpActionResult> PostNotificationSettings(NotificationSettingJson notificationSetting) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } User user = db.User.Find(notificationSetting.UserId); Valuta valuta = db.Valuta.Find(notificationSetting.ValutaId); NotificationSetting newNotificationSetting = new NotificationSetting { Push = notificationSetting.Push, TargetAmount = notificationSetting.TargetAmount, Valuta = valuta }; user.NotificationSettings.Add(newNotificationSetting); await db.SaveChangesAsync(); return(CreatedAtRoute("DefaultApi", new { id = newNotificationSetting.Id }, newNotificationSetting)); }
public async Task <IHttpActionResult> PutNotificationSettings(int id, NotificationSettingJson notificationSetting) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != notificationSetting.Id) { return(BadRequest()); } User user = db.User.SingleOrDefault(u => u.Id == notificationSetting.UserId); NotificationSetting notificationSettingOfUser = user.NotificationSettings.Where(ns => ns.Id == notificationSetting.Id).FirstOrDefault(); if (notificationSettingOfUser.TargetAmount != notificationSetting.TargetAmount) { notificationSettingOfUser.TargetAmount = notificationSetting.TargetAmount; } if (notificationSettingOfUser.Push != notificationSetting.Push) { notificationSettingOfUser.Push = notificationSetting.Push; } try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!NotificationSettingExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }