Exemple #1
0
        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));
        }
Exemple #2
0
        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);
            }
        }