public HttpResponseMessage Put(UpdateMessageStatusModel model) { var access = UserRights.V2Login(Db, Request); if (access.HasErrors) { return(Request.CreateErrorResponse(access.ErrorCode, access.ErrorMessage)); } var ok = MessageLayer.LogMessageStatus(CmsDb, model, access.Session.record_id); return(Request.CreateResponse(ok?HttpStatusCode.OK:HttpStatusCode.InternalServerError)); }
public static bool LogMessageStatus(IbaCmsDbContext cmsDb, UpdateMessageStatusModel model, decimal ibaId) { var msg = cmsDb.AppUserMessages.FirstOrDefault(a => a.Id == model.AppUserMessageId && a.DeviceOwner.IbaId == ibaId); // make sure that msg updated by correct device if (msg == null) { return(true); // should never happen } bool updated = false; if (model.Read != null && msg.Read == null) { updated = true; msg.Read = model.Read.Value; } if (model.Deleted != null && msg.Deleted == null) { updated = true; msg.Deleted = model.Deleted.Value; } if (model.Received != null && msg.Received == null) { updated = true; msg.Received = model.Received.Value; } if (!updated) { return(true); } try { cmsDb.SaveChanges(); return(true); } catch (Exception) { return(false); } }