public IHttpActionResult SubmitToVerify(int id) { var media = db.EventMediaInterviewRequest.Where(p => p.Id == id).FirstOrDefault(); if (media.MediaStatus == MediaStatus.RequireAmendment) { var approval = new EventMediaInterviewApproval { MediaId = media.Id, Level = EventApprovalLevel.Verifier, ApproverId = 0, Status = EventApprovalStatus.None, ApprovedDate = DateTime.Now, Remark = "", RequireNext = false }; db.EventMediaInterviewApproval.Add(approval); } db.SaveChanges(); if (media != null) { media.MediaStatus = MediaStatus.PendingVerified; db.EventMediaInterviewRequest.Attach(media); db.Entry(media).Property(m => m.MediaStatus).IsModified = true; db.Configuration.ValidateOnSaveEnabled = false; db.SaveChanges(); MediaInterviewRequestApiModel model = new MediaInterviewRequestApiModel { Id = media.Id, RefNo = media.RefNo, MediaStatus = media.MediaStatus, MediaName = media.MediaName, MediaStatusDesc = media.MediaStatus.GetDisplayName(), }; return(Ok(model)); } return(Ok()); }
public string UpdateApproval([FromBody] MediaInterviewApprovalModel model) { if (ModelState.IsValid) { var papproval = db.EventMediaInterviewApproval.Where(pa => pa.Id == model.approval.Id).FirstOrDefault(); if (papproval != null) { papproval.ApproverId = model.approval.ApproverId; papproval.Status = model.approval.Status; papproval.ApprovedDate = DateTime.Now; papproval.Remark = model.approval.Remarks; papproval.RequireNext = model.approval.RequireNext; // requirenext is always set to true when coming from verifier approval, and always false from approver3 db.Entry(papproval).State = EntityState.Modified; // HERE db.SaveChanges(); var mediainterview = db.EventMediaInterviewRequest.Where(p => p.Id == papproval.MediaId).FirstOrDefault(); if (mediainterview != null) { // proceed depending on requirenext if (model.approval.RequireNext == true) { EventApprovalLevel nextlevel; switch (papproval.Level) { case EventApprovalLevel.Verifier: nextlevel = EventApprovalLevel.Approver1; break; case EventApprovalLevel.Approver1: nextlevel = EventApprovalLevel.Approver2; break; case EventApprovalLevel.Approver2: nextlevel = EventApprovalLevel.Approver3; break; default: nextlevel = EventApprovalLevel.Approver1; break; } // create next approval record var pnewapproval = new EventMediaInterviewApproval { MediaId = papproval.MediaId, Level = nextlevel, ApproverId = 0, Status = EventApprovalStatus.None, ApprovedDate = DateTime.Now, Remark = "", RequireNext = false }; db.EventMediaInterviewApproval.Add(pnewapproval); // HERE db.SaveChanges(); } //return publication.Title; return(mediainterview.Id + "|" + mediainterview.MediaName + "|" + mediainterview.RefNo + "|" + mediainterview.Location + "|" + mediainterview.MediaStatus); } } } return(""); }
public IHttpActionResult Post([FromBody] CreateMediaInterviewRequestApiModel model) { var media = new EventMediaInterviewRequest { MediaName = model.MediaName, MediaType = model.MediaType, ContactPerson = model.ContactPerson, ContactNo = model.ContactNo, AddressStreet1 = model.AddressStreet1, AddressStreet2 = model.AddressStreet2, AddressPoscode = model.AddressPoscode, AddressCity = model.AddressCity, State = model.State, Email = model.Email, DateStart = model.DateStart, DateEnd = model.DateEnd, Time = model.Time, Language = model.Language, Topic = model.Topic, CreatedBy = model.CreatedBy, CreatedDate = DateTime.Now, Display = true, MediaStatus = MediaStatus.New, BranchId = model.BranchId, }; db.EventMediaInterviewRequest.Add(media); db.SaveChanges(); foreach (var repid in model.RepUserId) { var mediarep = new MediaRepresentative { UserId = repid, MediaInterview = media, }; db.MediaRepresentative.Add(mediarep); } //files foreach (var fileid in model.FilesId) { var eventfile = new EventFile { FileCategory = EventFileCategory.MediaInterview, FileId = fileid, ParentId = media.Id }; db.EventFile.Add(eventfile); } db.SaveChanges(); if (media != null) { var approval = new EventMediaInterviewApproval { MediaId = media.Id, Level = EventApprovalLevel.Verifier, ApproverId = 0, Status = EventApprovalStatus.None, ApprovedDate = DateTime.Now, Remark = "", RequireNext = false }; db.EventMediaInterviewApproval.Add(approval); } var refno = "EVT/" + DateTime.Now.ToString("yyMM"); refno += "/" + media.Id.ToString("D4"); media.RefNo = refno; db.Entry(media).State = EntityState.Modified; db.SaveChanges(); return(Ok(media.Id)); }