private void InsertOrUpdateCompanyIT(int certId, EcomCert_IT companyIT)
        {
            if (companyIT == null)
            {
                return;
            }

            EcomCert_IT ecomCompanyIT = _db.EcomCert_IT
                                        .AsNoTracking()
                                        .FirstOrDefault(x => x.CertID == certId);

            using (MSDBContext db = new MSDBContext())
            {
                if (ecomCompanyIT == null)
                {
                    ecomCompanyIT = companyIT;

                    ecomCompanyIT.CertID      = certId;
                    ecomCompanyIT.CreatedDate = DateTime.Now;

                    db.EcomCert_IT.Add(companyIT);
                }
                else
                {
                    ecomCompanyIT = companyIT;

                    ecomCompanyIT.CertID       = certId;
                    ecomCompanyIT.ModifiedDate = DateTime.Now;

                    db.EcomCert_IT.Attach(ecomCompanyIT);
                    db.Entry(ecomCompanyIT).State = EntityState.Modified;
                }

                db.SaveChanges();
            }
        }
        public ActionResult ReportCertified(int id)
        {
            /*if (Request.UrlReferrer == null || (Request.UrlReferrer != null && Request.UrlReferrer.AbsoluteUri != "http://wcaecommerce.wcaworld.com/eng/report_cert.asp"))
             * {
             *  return RedirectToAction("Login", "Account");
             * }*/

            if (Session["temp_report"] == null)
            {
                return(RedirectToAction("Login", "Application"));
            }

            //int Cid = Convert.ToInt32(HttpContext.Session["Cid"]);
            int CertId = id;

            int Cid = _db.EcomCerts.Where(r => r.CertID == CertId).FirstOrDefault().Cid;

            if (Cid == 0)
            {
                //redirec to login
            }

            ViewMember member = _db.Members.AsNoTracking()
                                .Include(x => x.Memberships)
                                .Include(x => x.Memberships.Select(y => y.Network))
                                .FirstOrDefault(x => x.Cid == Cid && x.Nid == 103);

            if (member == null)
            {
                //redirec to logi
            }

            CertifiedMemberApplicationView model = new CertifiedMemberApplicationView();

            model.Company             = member;
            model.Company.Memberships = member.Memberships;

            model.EcomCert.Cid            = Cid;
            model.Company_Detail.CompName = member.Company;

            EcomCert cert = _db.EcomCerts.AsNoTracking()
                            .FirstOrDefault(x => x.Cid == Cid);

            if (cert != null)
            {
                int StatusId = _db.EcomCert_Status.AsNoTracking()
                               .Where(x => x.CertID == cert.CertID)
                               .Select(x => x.StatusID)
                               .FirstOrDefault();

                // Status
                model.Status = StatusId == 1 ? "draft" : "submitted";


                // Company detail
                EcomCert_CompDetail companyDetail = _db.EcomCert_CompDetail
                                                    .Find(cert.CertID);

                model.Company_Detail = companyDetail;

                IEnumerable <int> productsHandled = _db.EcomCert_Product_Handled
                                                    .AsNoTracking()
                                                    .Where(x => x.CertID == cert.CertID)
                                                    .Select(x => x.ProductId)
                                                    .ToList();
                model.Products_Handled = productsHandled;

                // Company service
                EcomCert_Service companyService = _db.EcomCert_Service
                                                  .Find(cert.CertID);

                // Company service: services provide
                IEnumerable <int> companyServicesProvide = _db.EcomCert_Service_Provide
                                                           .AsNoTracking()
                                                           .Where(x => x.CertID == cert.CertID)
                                                           .Select(x => x.ServiceId)
                                                           .ToList();

                model.Company_Service = companyService;
                model.Services        = companyServicesProvide;

                // Company service cross-border service provide
                model.CrossBorderServices = _db.EcomCert_Service_CrossBorder
                                            .AsNoTracking()
                                            .Where(x => x.CertID == cert.CertID)
                                            .Select(x => x.CrossBorderId)
                                            .ToList();

                // Company service: GroundServices
                model.GroundServices = _db.EcomCert_Service_Ground
                                       .AsNoTracking()
                                       .Where(x => x.CertID == cert.CertID)
                                       .Select(x => x.GroundServiceId)
                                       .ToList();

                // Company service: TransportFleets
                model.TransportFleets = _db.EcomCert_Service_TransportFleet
                                        .AsNoTracking()
                                        .Where(x => x.CertID == cert.CertID)
                                        .Select(x => x.TransportFleetId)
                                        .ToList();

                // Company service: PayOnDelivery
                model.PayOnDelivery = _db.EcomCert_Service_PayOnDelivery
                                      .AsNoTracking()
                                      .Where(x => x.CertID == cert.CertID)
                                      .Select(x => x.PaymentTypeId)
                                      .ToList();

                // Company service: InternalBounds
                model.InternalBounds = _db.EcomCert_Service_InternalBound
                                       .AsNoTracking()
                                       .Where(x => x.CertID == cert.CertID)
                                       .Select(x => x.InternalBoundId)
                                       .ToList();

                // Company IT
                EcomCert_IT companyIT = _db.EcomCert_IT
                                        .Find(cert.CertID);

                model.Company_IT = companyIT;
            }

            return(View(model));
        }
        //[Authorize]
        public ActionResult Certified(int cId = 0)
        {
            int Cid = cId == 0 ? Convert.ToInt32(HttpContext.Session["Cid"]) : cId;

            ViewMember member = _db.Members.AsNoTracking()
                                .Include(x => x.Memberships)
                                .Include(x => x.Memberships.Select(y => y.Network))
                                .FirstOrDefault(x => x.Cid == Cid && x.Nid == 103);

            if (member == null)
            {
                //redirec to login
                return(RedirectToAction("Login", "Account", new { returnUrl = "application/certified" }));
            }

            CertifiedMemberApplicationView model = new CertifiedMemberApplicationView();

            model.Company             = member;
            model.Company.Memberships = member.Memberships;

            model.EcomCert.Cid            = Cid;
            model.Company_Detail.CompName = member.Company;

            EcomCert cert = _db.EcomCerts.AsNoTracking()
                            .FirstOrDefault(x => x.Cid == Cid);

            if (cert != null)
            {
                int StatusId = _db.EcomCert_Status.AsNoTracking()
                               .Where(x => x.CertID == cert.CertID)
                               .Select(x => x.StatusID)
                               .FirstOrDefault();

                // Status
                model.Status = StatusId == 1 ? "draft" : "submitted";


                // Company detail
                EcomCert_CompDetail companyDetail = _db.EcomCert_CompDetail
                                                    .Find(cert.CertID);

                model.Company_Detail = companyDetail == null ? new EcomCert_CompDetail() : companyDetail;

                IEnumerable <int> productsHandled = _db.EcomCert_Product_Handled
                                                    .AsNoTracking()
                                                    .Where(x => x.CertID == cert.CertID)
                                                    .Select(x => x.ProductId)
                                                    .ToList();
                model.Products_Handled = productsHandled;

                // Company service
                EcomCert_Service companyService = _db.EcomCert_Service
                                                  .Find(cert.CertID);

                // Company service: services provide
                IEnumerable <int> companyServicesProvide = _db.EcomCert_Service_Provide
                                                           .AsNoTracking()
                                                           .Where(x => x.CertID == cert.CertID)
                                                           .Select(x => x.ServiceId)
                                                           .ToList();

                model.Company_Service = companyService == null ? new EcomCert_Service() : companyService;
                model.Services        = companyServicesProvide;

                // Company service cross-border service provide
                model.CrossBorderServices = _db.EcomCert_Service_CrossBorder
                                            .AsNoTracking()
                                            .Where(x => x.CertID == cert.CertID)
                                            .Select(x => x.CrossBorderId)
                                            .ToList();

                // Company service: GroundServices
                model.GroundServices = _db.EcomCert_Service_Ground
                                       .AsNoTracking()
                                       .Where(x => x.CertID == cert.CertID)
                                       .Select(x => x.GroundServiceId)
                                       .ToList();

                // Company service: TransportFleets
                model.TransportFleets = _db.EcomCert_Service_TransportFleet
                                        .AsNoTracking()
                                        .Where(x => x.CertID == cert.CertID)
                                        .Select(x => x.TransportFleetId)
                                        .ToList();

                // Company service: PayOnDelivery
                model.PayOnDelivery = _db.EcomCert_Service_PayOnDelivery
                                      .AsNoTracking()
                                      .Where(x => x.CertID == cert.CertID)
                                      .Select(x => x.PaymentTypeId)
                                      .ToList();

                // Company service: InternalBounds
                model.InternalBounds = _db.EcomCert_Service_InternalBound
                                       .AsNoTracking()
                                       .Where(x => x.CertID == cert.CertID)
                                       .Select(x => x.InternalBoundId)
                                       .ToList();

                // Company IT
                EcomCert_IT companyIT = _db.EcomCert_IT
                                        .Find(cert.CertID);

                model.Company_IT = companyIT == null ? new EcomCert_IT() : companyIT;
            }

            return(View(model));
        }