public ActionResult UploadMedia(ViewModel_Conference viewModel_Conference, HttpPostedFileBase docFile)
        {
            if (viewModel_Conference == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            if (viewModel_Conference.Confernece == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            if (viewModel_Conference.Confernece.ID == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            if (!ModelState.IsValid)
            {
                ViewData["error"] = "Please check below item(s), again";
                return(View(viewModel_Conference));
            }
            //  Save
            //  Procedure of form edition
            Cmn cmn = new Cmn();

            cmn.UserName = "******";
            if (User.Identity.IsAuthenticated)
            {
                cmn.UserName = User.Identity.Name;
            }
            Conference conference = db.Conferences.Find(viewModel_Conference.Confernece.ID);

            if (docFile != null)
            {
                try
                {
                    var fileName = cmn.GetFileName("Conference", "Media", conference.ID.ToString(), "", conference.Code.ToString(), Path.GetExtension(docFile.FileName).ToString());
                    var filePath = Path.Combine(Server.MapPath(cmn.GetStoredFilePath()), fileName);
                    docFile.SaveAs(filePath);
                    conference.FileNameMedia = Path.GetFileName(docFile.FileName);
                    conference.FilePathMedia = filePath.ToString();
                }
                catch
                {
                    ViewData["uploadMsg"] = "Upload failed";
                    viewModel_Conference  = GetViewModel(viewModel_Conference.Confernece.ID);
                    return(View(viewModel_Conference));
                }
            }
            // ***  Non-system attribute (Finish)   *** //
            //  Set system log
            conference.DateEdit        = cmn.CurrentDatetime;
            conference.UserEdit        = cmn.UserName;
            db.Entry(conference).State = EntityState.Modified;
            //  Update database
            db.SaveChanges();
            String ctrlBtn = Request.Form["ctrlBtn"];

            if (ctrlBtn == "Refresh")
            {
                return(RedirectToAction("UploadMedia", "Conferences", new { id = conference.ID }));
            }
            if (ctrlBtn == "Submit")
            {
                return(RedirectToAction("Details", "Conferences", new { id = conference.ID }));
            }
            return(RedirectToAction("", "Home", null));
        }
        public ActionResult Edited(ViewModel_Conference viewModel_Conference, HttpPostedFileBase docFile)
        {
            if (viewModel_Conference == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            if (viewModel_Conference.Confernece == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            if (viewModel_Conference.Confernece.ID == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            if (!ModelState.IsValid)
            {
                ViewData["error"] = "Please check below item(s), again";
                return(View(viewModel_Conference));
            }
            //  Save
            //  Procedure of form edition
            Cmn cmn = new Cmn();

            cmn.UserName = "******";
            if (User.Identity.IsAuthenticated)
            {
                cmn.UserName = User.Identity.Name;
            }
            Conference conference = db.Conferences.Find(viewModel_Conference.Confernece.ID);

            //  Save as Fields / Technical / Area
            if (viewModel_Conference.Fields != null)
            {
                foreach (Field item in viewModel_Conference.Fields)
                {
                    Field field = db.Fields.Find(item.ID);
                    // ***  Non-system attribute (Begin)    *** //
                    field.Code        = item.Code;
                    field.Description = item.Description;
                    // ***  Non-system attribute (Finish)   *** //
                    //  Set system log
                    field.DateEdit        = cmn.CurrentDatetime;
                    field.UserEdit        = cmn.UserName;
                    db.Entry(field).State = EntityState.Modified;
                }
            }
            //  Save as control date
            if (viewModel_Conference.ControlDates != null)
            {
                foreach (ControlDate item in viewModel_Conference.ControlDates)
                {
                    ControlDate controlDate = db.ControlDates.Find(item.ID);
                    // ***  Non-system attribute (Begin)    *** //
                    controlDate.Description = item.Description;
                    controlDate.PeriodFrom  = item.PeriodFrom;
                    controlDate.PeriodTo    = item.PeriodTo;
                    // ***  Non-system attribute (Finish)   *** //
                    //  Set system log
                    controlDate.DateEdit        = cmn.CurrentDatetime;
                    controlDate.UserEdit        = cmn.UserName;
                    db.Entry(controlDate).State = EntityState.Modified;
                }
            }
            // ***  Non-system attribute (Begin)    *** //
            conference.Title      = viewModel_Conference.Confernece.Title;
            conference.PeriodFrom = viewModel_Conference.Confernece.PeriodFrom;
            conference.PeriodTo   = viewModel_Conference.Confernece.PeriodTo;
            conference.Venue      = viewModel_Conference.Confernece.Venue;
            conference.City       = viewModel_Conference.Confernece.City;
            conference.Country    = viewModel_Conference.Confernece.Country;
            conference.HomeUrl    = viewModel_Conference.Confernece.HomeUrl;
            conference.Contact    = viewModel_Conference.Confernece.Contact;
            conference.Style      = viewModel_Conference.Confernece.Style;
            if (docFile != null)
            {
                try
                {
                    var fileName = cmn.GetFileName("Conference", "Poster", conference.ID.ToString(), "", conference.Code.ToString(), Path.GetExtension(docFile.FileName).ToString());
                    var filePath = Path.Combine(Server.MapPath(cmn.GetStoredFilePath()), fileName);
                    docFile.SaveAs(filePath);
                    conference.FileNamePoster = Path.GetFileName(docFile.FileName);
                    conference.FilePathPoster = filePath.ToString();
                }
                catch
                {
                    ViewData["uploadMsg"] = "Upload failed";
                    return(View(viewModel_Conference));
                }
            }
            // ***  Non-system attribute (Finish)   *** //
            //  Set system log
            conference.DateEdit        = cmn.CurrentDatetime;
            conference.UserEdit        = cmn.UserName;
            db.Entry(conference).State = EntityState.Modified;
            //  Update database
            db.SaveChanges();
            String ctrlBtn = Request.Form["ctrlBtn"];

            if (ctrlBtn == "Refresh")
            {
                return(RedirectToAction("Edit", "Conferences", new { id = conference.ID }));
            }
            if (ctrlBtn == "Add Item")
            {
                //  Set row number
                String numRecord = db.Fields.Count(p => p.ConferenceID == conference.ID).ToString();
                String maxVal    = db.Fields.Where(p => p.ConferenceID == conference.ID).Max(p => p.RowNum).ToString();
                Field  newItem   = new Field();
                newItem.ConferenceID = conference.ID;
                newItem.RowNum       = cmn.CnvInteger(cmn.GetVersionID(numRecord.ToString(), maxVal, 2));
                newItem.DateCreate   = cmn.CurrentDatetime;
                newItem.UserCreate   = cmn.UserName;
                newItem.DateEdit     = cmn.CurrentDatetime;
                newItem.UserEdit     = cmn.UserName;
                db.Fields.Add(newItem);
                db.SaveChanges();
                return(RedirectToAction("Edit", "Conferences", new { id = conference.ID }));
            }
            if (ctrlBtn == "Submit")
            {
                List <Field> removeItems = db.Fields.Where(p => p.ConferenceID == conference.ID)
                                           .Where(p => p.Code == null && p.Description == null)
                                           .ToList();
                if (removeItems == null)
                {
                    return(RedirectToAction("Details", "Conferences", new { id = conference.ID }));
                }
                ;
                foreach (Field removeItem in removeItems)
                {
                    db.Fields.Remove(removeItem);
                }
                db.SaveChanges();
                return(RedirectToAction("Details", "Conferences", new { id = conference.ID }));
            }
            return(RedirectToAction("", "Home", null));
        }