public MessagesModel SaveMessage(MessagesModel mm) { using (MessagesContainer cr = new MessagesContainer()) { message msg = null; if (mm.UID > 0) { msg = cr.messages.Where(m => m.UID == mm.UID).FirstOrDefault(); } if (msg == null) { msg = new message(); cr.Entry(msg).State = System.Data.EntityState.Added; } msg.MessageTitle = mm.MessageTitle; msg.DateCreated = mm.DateCreated; msg.MessageDescription = mm.MessageDescription; msg.MessageAuthor = mm.MessageAuthor; msg.MessageHardCopy = mm.MessageHardCopy; msg.Series = mm.Series; msg.VideoFile = mm.VideoFile; msg.mp3File = mm.mp3File; try { cr.SaveChanges(); } catch (System.Data.Entity.Infrastructure.DbUpdateException DbEx) { mm.errorMessage = DbEx.ToString(); } finally { mm.UID = msg.UID; ((IObjectContextAdapter)cr).ObjectContext.Detach(msg); } } return(mm); }
public IHttpActionResult EditProcessAction(string token, int id, int UserId, JDE_ProcessActions item) { Logger.Info("Start EditProcessAction. Id={id}, UserId={UserId}", id, UserId); if (token != null && token.Length > 0) { var tenants = db.JDE_Tenants.Where(t => t.TenantToken == token.Trim()); if (tenants.Any()) { var items = db.JDE_ProcessActions.AsNoTracking().Where(u => u.TenantId == tenants.FirstOrDefault().TenantId&& u.ProcessActionId == id); if (items.Any()) { string newItem = ""; try { item.CreatedOn = items.FirstOrDefault().CreatedOn; //switch back to original createdOn date item.LmOn = DateTime.Now; item.LmBy = UserId; item.TenantId = items.FirstOrDefault().TenantId; string descr = "Edycja przypisania czynności do zgłoszenia"; newItem = new JavaScriptSerializer().Serialize(item); JDE_Logs Log = new JDE_Logs { UserId = UserId, Description = descr, TenantId = tenants.FirstOrDefault().TenantId, Timestamp = DateTime.Now, OldValue = new JavaScriptSerializer().Serialize(items.FirstOrDefault()), NewValue = newItem }; db.JDE_Logs.Add(Log); db.Entry(item).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException DbEx) { Logger.Error("Błąd DbUpdateConcurrencyException w EditProcessAction. Id={id}, UserId={UserId}. Szczegóły: {Message}, nowa wartość: {newItem}", id, UserId, DbEx.ToString(), newItem); if (!JDE_ProcessActionExists(id)) { return(NotFound()); } else { return(InternalServerError()); } } } catch (Exception ex) { Logger.Error("Błąd w EditProcessAction. Id={id}, UserId={UserId}. Szczegóły: {Message}, nowa wartość: {newItem}", id, UserId, ex.ToString(), newItem); return(InternalServerError()); } } else { Logger.Info("ProcessAction Id={id} nie zostało znalezione..", id); } } } Logger.Info("Koniec EditProcessAction. Id={id}, UserId={UserId}", id, UserId); return(StatusCode(HttpStatusCode.NoContent)); }