Ejemplo n.º 1
0
        //Edit
        public IHttpActionResult Put(int id, [FromBody] EditMediaInterviewRequestApiModel model)
        {
            var media = db.EventMediaInterviewRequest.Where(u => u.Id == id).FirstOrDefault();

            if (media == null)
            {
                return(NotFound());
            }

            media.MediaName      = model.MediaName;
            media.MediaType      = model.MediaType;
            media.ContactPerson  = model.ContactPerson;
            media.ContactNo      = model.ContactNo;
            media.AddressStreet1 = model.AddressStreet1;
            media.AddressStreet2 = model.AddressStreet2;
            media.AddressPoscode = model.AddressPoscode;
            media.AddressCity    = model.AddressCity;
            media.State          = model.State;
            media.Email          = model.Email;
            media.DateStart      = model.DateStart;
            media.DateEnd        = model.DateEnd;
            media.Time           = model.Time;
            media.Language       = model.Language;
            media.Topic          = model.Topic;
            media.MediaStatus    = model.MediaStatus;
            media.RefNo          = model.RefNo;
            media.BranchId       = model.BranchId;

            db.Entry(media).State = EntityState.Modified;
            db.Entry(media).Property(x => x.CreatedDate).IsModified = false;
            db.Entry(media).Property(x => x.Display).IsModified     = false;

            db.MediaRepresentative.RemoveRange(db.MediaRepresentative.Where(u => u.MediaId == id));            //remove all
            foreach (var repid in model.RepUserId)
            {
                var mediarep = new MediaRepresentative
                {
                    UserId         = repid,
                    MediaInterview = media,
                };

                db.MediaRepresentative.Add(mediarep);
            }

            //remove file
            var attachments = db.EventFile.Where(s => s.FileCategory == EventFileCategory.MediaInterview && s.ParentId == model.Id).ToList();

            if (attachments != null)
            {
                //delete all
                if (model.Attachments == null)
                {
                    foreach (var attachment in attachments)
                    {
                        attachment.FileDocument.Display = false;
                        db.FileDocument.Attach(attachment.FileDocument);
                        db.Entry(attachment.FileDocument).Property(m => m.Display).IsModified = true;

                        db.EventFile.Remove(attachment);
                    }
                }
                else
                {
                    foreach (var attachment in attachments)
                    {
                        if (!model.Attachments.Any(u => u.Id == attachment.FileDocument.Id))                        //delete if not exist anymore
                        {
                            attachment.FileDocument.Display = false;
                            db.FileDocument.Attach(attachment.FileDocument);
                            db.Entry(attachment.FileDocument).Property(m => m.Display).IsModified = true;

                            db.EventFile.Remove(attachment);
                        }
                    }
                }
            }

            //add new file
            //files
            foreach (var fileid in model.FilesId)
            {
                var eventfile = new EventFile
                {
                    FileCategory = EventFileCategory.MediaInterview,
                    FileId       = fileid,
                    ParentId     = media.Id
                };

                db.EventFile.Add(eventfile);
            }

            db.Configuration.ValidateOnSaveEnabled = true;
            db.SaveChanges();
            return(Ok(true));
        }
Ejemplo n.º 2
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));
        }