예제 #1
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("");
        }
예제 #2
0
        public MediaInterviewApprovalModel Get(int id)
        {
            var media = db.EventMediaInterviewRequest.Where(u => u.Id == id)
                        .Select(i => new MediaInterviewRequestApiModel
            {
                Id              = i.Id,
                MediaName       = i.MediaName,
                MediaType       = i.MediaType,
                ContactNo       = i.ContactNo,
                AddressStreet1  = i.AddressStreet1,
                AddressStreet2  = i.AddressStreet2,
                AddressPoscode  = i.AddressPoscode,
                AddressCity     = i.AddressCity,
                State           = i.State,
                Email           = i.Email,
                DateStart       = i.DateStart,
                DateEnd         = i.DateEnd,
                Time            = i.Time,
                Location        = i.Location,
                Language        = i.Language,
                Topic           = i.Topic,
                RepUserName     = i.User.Name,
                RepEmail        = i.User.Email,
                RepMobileNumber = i.User.MobileNo,
                RepDesignation  = i.User.StaffProfile.Designation.Name,
                ContactPerson   = i.ContactPerson,
                CreatedBy       = i.CreatedBy,
                CreatedDate     = i.CreatedDate,
                RefNo           = i.RefNo,
                MediaStatus     = i.MediaStatus,
                CreatedByName   = i.CreatedByUser.Name,
                BranchId        = i.BranchId,
                BranchName      = i.Branch.Name
            }).FirstOrDefault();

            if (media.MediaStatus != MediaStatus.ApprovedByApprover3 && media.MediaStatus != MediaStatus.RequireAmendment && media.MediaStatus != MediaStatus.RepAvailable && media.MediaStatus != MediaStatus.RepNotAvailable)
            {
                var approval = db.EventMediaInterviewApproval.Where(pa => pa.MediaId == id && pa.Status == EventApprovalStatus.None).Select(s => new ApprovalModel
                {
                    Id          = s.Id,
                    MediaId     = s.MediaId,
                    Level       = s.Level,
                    ApproverId  = 0,
                    Status      = EventApprovalStatus.None,
                    Remarks     = "",
                    RequireNext = s.RequireNext
                }).FirstOrDefault();

                var evaluation = new MediaInterviewApprovalModel
                {
                    mediainterview = media,
                    approval       = approval
                };

                evaluation.mediainterview.Attachments = db.FileDocument.Where(f => f.Display).Join(db.EventFile.Where(e => e.FileCategory == EventFileCategory.MediaInterview && e.ParentId == id), s => s.Id, c => c.FileId, (s, b) => new Attachment {
                    Id = s.Id, FileName = s.FileName
                }).ToList();
                evaluation.mediainterview.RepUserId = db.MediaRepresentative.Where(r => r.MediaId == id).Select(s => s.UserId).ToArray();

                return(evaluation);
            }
            else
            {
                var approval = db.EventMediaInterviewApproval.Where(pa => pa.MediaId == id).Select(s => new ApprovalModel
                {
                    Id          = s.Id,
                    MediaId     = s.MediaId,
                    Level       = s.Level,
                    ApproverId  = 0,
                    Status      = s.Status,
                    Remarks     = "",
                    RequireNext = s.RequireNext
                }).FirstOrDefault();

                var evaluation = new MediaInterviewApprovalModel
                {
                    mediainterview = media,
                    approval       = approval
                };

                evaluation.mediainterview.Attachments = db.FileDocument.Where(f => f.Display).Join(db.EventFile.Where(e => e.FileCategory == EventFileCategory.MediaInterview && e.ParentId == id), s => s.Id, c => c.FileId, (s, b) => new Attachment {
                    Id = s.Id, FileName = s.FileName
                }).ToList();
                evaluation.mediainterview.RepUserId = db.MediaRepresentative.Where(r => r.MediaId == id).Select(s => s.UserId).ToArray();

                return(evaluation);
            }
        }