Beispiel #1
0
        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());
        }
Beispiel #2
0
        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("");
        }
Beispiel #3
0
        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));
        }