Beispiel #1
0
        public ActionResult Edit(BDSNew model, HttpPostedFileBase[] files, int[] img_id)
        {
            if (!ModelState.IsValid)
            {
                LoadDataList();
                ViewBag.Success = false;
                ViewBag.Message = Resource.SaveFailed;
                var list = (List <SelectListItem>)ViewBag.Careers;
                List <SelectListItem> lst = new List <SelectListItem>();
                foreach (var item in list)
                {
                    if (model.Career.Split(',').Contains(item.Value))
                    {
                        lst.Add(new SelectListItem {
                            Value = item.Value, Text = item.Text, Selected = true
                        });
                    }
                }


                ViewBag.MultiSelectCareer = lst;
                return(View(model));
            }
            var fromDate = model.FromDateToDateString.Split('-')[0];
            var toDate   = model.FromDateToDateString.Split('-')[1];

            model.FromCreateNews = DateTime.Parse(fromDate.Trim(), MvcApplication.CultureInfo, DateTimeStyles.None);
            model.ToCreateNews   = DateTime.Parse(toDate.Trim(), MvcApplication.CultureInfo, DateTimeStyles.None);
            model.FromDeadline   = DateTime.Now;
            model.ShowEmail      = model.ShowEmail;
            model.KeySearch      = model.Title.NormalizeD() + " " + _serviceAccount.GetItem(model.IdAcount).Email + " " + _serviceNewsType.GetItem(model.IdTypeNews).Name.NormalizeD() + " " + _serviceEmployerInformation.GetIQueryableItems().Where(T => T.IdAccount == model.IdAcount).FirstOrDefault().Name + " " + model.DesCompany.NormalizeD();
            _service.UpdateItem(model);
            var listMap = db.BDSNews_Career.Where(T => T.ID_News == model.ID).ToList();

            foreach (var item in listMap)
            {
                db.Entry(item).State = EntityState.Deleted;
            }
            db.SaveChanges();
            foreach (var item in model.Career.Split(','))
            {
                BDSNews_Career i = new BDSNews_Career {
                    ID_News = model.ID, ID_Career = int.Parse(item)
                };
                db.Entry(i).State = EntityState.Added;
            }
            db.SaveChanges();
            if (img_id != null && img_id.Length > 0)
            {
                var listPic = _servicePicture.GetIQueryableItems().Where(T => T.advert_id == model.ID && !img_id.Contains(T.ID)).ToList();
                foreach (var pic in listPic)
                {
                    _servicePicture.DeleteItem(pic.ID);
                }
            }

            if (files != null && files.Length > 0)
            {
                for (int i = 0; i < files.Length; i++)
                {
                    if (files[i] != null)
                    {
                        byte[] binaryData;
                        binaryData = new Byte[files[i].InputStream.Length];
                        long bytesRead = files[i].InputStream.Read(binaryData, 0, (int)files[i].InputStream.Length);
                        files[i].InputStream.Close();
                        string base64String = System.Convert.ToBase64String(binaryData, 0, binaryData.Length);
                        SaveImg(new NewsPictures {
                            nameImg = files[i].FileName, idProducts = model.ID, isactive = 1, index = i, cfile = base64String
                        });
                    }
                }
            }



            db.SaveChanges();



            ViewBag.Success = true;
            ViewBag.Message = Resource.SaveSuccessful;
            return(Edit(model.ID));
        }
Beispiel #2
0
        public ActionResult Review(BDSNew model, HttpPostedFileBase[] files, int[] img_id)
        {
            if (!ModelState.IsValid)
            {
                LoadDataList();
                ViewBag.Success = false;
                ViewBag.Message = Resource.SaveFailed;
                var list = (List <SelectListItem>)ViewBag.Careers;
                List <SelectListItem> lst = new List <SelectListItem>();
                foreach (var item in list)
                {
                    if (model.Career.Split(',').Contains(item.Value))
                    {
                        lst.Add(new SelectListItem {
                            Value = item.Value, Text = item.Text, Selected = true
                        });
                    }
                }


                ViewBag.MultiSelectCareer = lst;
                return(View(model));
            }
            var fromDate = model.FromDateToDateString.Split('-')[0];
            var toDate   = model.FromDateToDateString.Split('-')[1];

            model.FromCreateNews = DateTime.Parse(fromDate.Trim(), MvcApplication.CultureInfo, DateTimeStyles.None);
            model.ToCreateNews   = DateTime.Parse(toDate.Trim(), MvcApplication.CultureInfo, DateTimeStyles.None);
            model.BDSAccount     = _serviceAccount.GetItem(model.IdAcount);
            model.FromDeadline   = DateTime.Now;
            model.ShowEmail      = model.ShowEmail;
            model.KeySearch      = model.Title.NormalizeD() + " " + model.BDSAccount.Email + " " + _serviceNewsType.GetItem(model.IdTypeNews).Name.NormalizeD() + " " + _serviceEmployerInformation.GetIQueryableItems().Where(T => T.IdAccount == model.IdAcount).FirstOrDefault().Name + " " + model.DesCompany.NormalizeD();

            if (model.Status == 1)
            {
                model.DateReup  = model.FromCreateNews >= DateTime.Now ? model.FromCreateNews : DateTime.Now;
                model.MaxReup   = 3;
                model.CountReup = 0;
                if (model.RefTranHis.HasValue)
                {
                    var tranHis = _serviceTransactionHistory.GetItem(model.RefTranHis.Value);
                    tranHis.Active = 1;
                    _serviceTransactionHistory.UpdateItem(tranHis);
                }
                var totalDay = model.ToCreateNews.Value.Subtract(model.FromCreateNews.Value).TotalDays;
                if (totalDay < 1)
                {
                    totalDay = 1;
                }
                else
                {
                    totalDay = Math.Ceiling(totalDay);
                }
                var listDate = _serviceNewsDate.GetIQueryableItems().Where(T => T.IdNews == model.ID && T.Active == 1).ToList();
                foreach (var item in listDate)
                {
                    item.Active = 0;
                    _serviceNewsDate.UpdateItem(item);
                }
                if (model.IdTypeNews == 1)
                {
                    BDSNewsDate d1 = new BDSNewsDate
                    {
                        Name           = "TBT=" + totalDay,
                        KeySearch      = "",
                        IdTypeNews     = model.IdTypeNews,
                        IdNews         = model.ID,
                        CreateUser     = 1,
                        CreateDate     = DateTime.Now,
                        Description    = "",
                        DIndex         = 1,
                        FromCreateNews = model.FromCreateNews,
                        ToCreateNews   = model.ToCreateNews,
                        Status         = 1
                    };
                    _serviceNewsDate.CreateItem(d1);

                    BDSNewsDate d2 = new BDSNewsDate
                    {
                        Name           = "TFE=" + 90,
                        KeySearch      = "",
                        IdTypeNews     = 4,
                        IdNews         = model.ID,
                        CreateUser     = 1,
                        DIndex         = 2,
                        CreateDate     = DateTime.Now,
                        Description    = "",
                        FromCreateNews = model.ToCreateNews.Value.AddDays(1),
                        ToCreateNews   = model.ToCreateNews.Value.AddDays(90),
                        Status         = 1
                    };
                    _serviceNewsDate.CreateItem(d2);
                    model.IdNewsDates = d1.ID;
                }
                if (model.IdTypeNews == 2)
                {
                    BDSNewsDate d1 = new BDSNewsDate
                    {
                        Name           = "TVP=" + totalDay,
                        KeySearch      = "",
                        IdTypeNews     = model.IdTypeNews,
                        IdNews         = model.ID,
                        CreateUser     = 1,
                        DIndex         = 1,
                        CreateDate     = DateTime.Now,
                        Description    = "",
                        FromCreateNews = model.FromCreateNews,
                        ToCreateNews   = model.ToCreateNews,
                        Status         = 1
                    };
                    _serviceNewsDate.CreateItem(d1);

                    BDSNewsDate d2 = new BDSNewsDate
                    {
                        Name           = "TBT=" + 60,
                        KeySearch      = "",
                        IdTypeNews     = 1,
                        DIndex         = 2,
                        IdNews         = model.ID,
                        CreateUser     = 1,
                        CreateDate     = DateTime.Now,
                        Description    = "",
                        FromCreateNews = model.ToCreateNews.Value.AddDays(1),
                        ToCreateNews   = model.ToCreateNews.Value.AddDays(60),
                        Status         = 1
                    };
                    _serviceNewsDate.CreateItem(d2);

                    BDSNewsDate d3 = new BDSNewsDate
                    {
                        Name           = "TFE=" + 90,
                        KeySearch      = "",
                        IdTypeNews     = 4,
                        IdNews         = model.ID,
                        CreateUser     = 1,
                        DIndex         = 3,
                        CreateDate     = DateTime.Now,
                        Description    = "",
                        FromCreateNews = model.ToCreateNews.Value.AddDays(61),
                        ToCreateNews   = model.ToCreateNews.Value.AddDays(150),
                        Status         = 1
                    };
                    _serviceNewsDate.CreateItem(d3);
                    model.IdNewsDates = d1.ID;
                }
                if (model.IdTypeNews == 3)
                {
                    BDSNewsDate d1 = new BDSNewsDate
                    {
                        Name           = "TDB=" + totalDay,
                        KeySearch      = "",
                        DIndex         = 1,
                        IdTypeNews     = model.IdTypeNews,
                        IdNews         = model.ID,
                        CreateUser     = 1,
                        CreateDate     = DateTime.Now,
                        Description    = "",
                        FromCreateNews = model.FromCreateNews,
                        ToCreateNews   = model.ToCreateNews,
                        Status         = 1
                    };
                    _serviceNewsDate.CreateItem(d1);

                    BDSNewsDate d2 = new BDSNewsDate
                    {
                        Name           = "TBT=" + 60,
                        KeySearch      = "",
                        IdTypeNews     = 1,
                        DIndex         = 2,
                        IdNews         = model.ID,
                        CreateUser     = 1,
                        CreateDate     = DateTime.Now,
                        Description    = "",
                        FromCreateNews = model.ToCreateNews.Value.AddDays(1),
                        ToCreateNews   = model.ToCreateNews.Value.AddDays(60),
                        Status         = 1
                    };
                    _serviceNewsDate.CreateItem(d2);

                    BDSNewsDate d3 = new BDSNewsDate
                    {
                        Name           = "TFE=" + 90,
                        KeySearch      = "",
                        IdTypeNews     = 4,
                        DIndex         = 3,
                        IdNews         = model.ID,
                        CreateUser     = 1,
                        CreateDate     = DateTime.Now,
                        Description    = "",
                        FromCreateNews = model.ToCreateNews.Value.AddDays(61),
                        ToCreateNews   = model.ToCreateNews.Value.AddDays(150),
                        Status         = 1
                    };
                    _serviceNewsDate.CreateItem(d3);
                    model.IdNewsDates = d1.ID;
                }
                if (model.IdTypeNews == 4)
                {
                    BDSNewsDate d1 = new BDSNewsDate
                    {
                        Name           = "TFE=" + totalDay,
                        KeySearch      = "",
                        DIndex         = 1,
                        IdTypeNews     = model.IdTypeNews,
                        IdNews         = model.ID,
                        CreateUser     = 1,
                        CreateDate     = DateTime.Now,
                        Description    = "",
                        FromCreateNews = model.FromCreateNews,
                        ToCreateNews   = model.ToCreateNews,
                        Status         = 1
                    };
                    _serviceNewsDate.CreateItem(d1);
                    model.IdNewsDates = d1.ID;
                }
            }

            _service.UpdateItem(model);

            if (model.RefTranHis.HasValue)
            {
                var    type  = _serviceNewsType.GetItem(model.IdTypeNewsCuurent);
                String Fname = "Edit tin '{A}' trong vòng '{B}' ngày tổng giá phải trả '{C}' VNĐ";
                string name  = Fname.Replace("{A}", type.Name).Replace("{B}", ((int)Math.Ceiling(model.ToCreateNews.Value.Subtract(model.FromCreateNews.Value).TotalDays)) + "").Replace("{C}", model.TotalMoney.ToString("n2"));
                var    tran  = _serviceTransactionHistory.GetItem(model.RefTranHis.Value);
                tran.Name += "-" + Fname;
                var difMoney = model.TotalMoney - tran.MoneyTran;
                if (difMoney != 0)
                {
                    tran.MoneyTran += difMoney;
                    tran.Active     = 1;
                    _serviceTransactionHistory.UpdateItem(tran);
                    model.BDSAccount.Money += difMoney;
                    _serviceAccount.UpdateItem(model.BDSAccount);
                }
            }
            var listMap = db.BDSNews_Career.Where(T => T.ID_News == model.ID).ToList();

            foreach (var item in listMap)
            {
                db.Entry(item).State = EntityState.Deleted;
            }
            db.SaveChanges();
            foreach (var item in model.Career.Split(','))
            {
                BDSNews_Career i = new BDSNews_Career {
                    ID_News = model.ID, ID_Career = int.Parse(item)
                };
                db.Entry(i).State = EntityState.Added;
            }
            db.SaveChanges();
            if (img_id != null && img_id.Length > 0)
            {
                var listPic = _servicePicture.GetIQueryableItems().Where(T => T.advert_id == model.ID && !img_id.Contains(T.ID)).ToList();
                foreach (var pic in listPic)
                {
                    _servicePicture.DeleteItem(pic.ID);
                }
            }

            if (files != null && files.Length > 0)
            {
                for (int i = 0; i < files.Length; i++)
                {
                    if (files[i] != null)
                    {
                        byte[] binaryData;
                        binaryData = new Byte[files[i].InputStream.Length];
                        long bytesRead = files[i].InputStream.Read(binaryData, 0, (int)files[i].InputStream.Length);
                        files[i].InputStream.Close();
                        string base64String = System.Convert.ToBase64String(binaryData, 0, binaryData.Length);
                        SaveImg(new NewsPictures {
                            nameImg = files[i].FileName, idProducts = model.ID, isactive = 1, index = i, cfile = base64String
                        });
                    }
                }
            }



            ViewBag.Success = true;
            ViewBag.Message = Resource.SaveSuccessful;
            return(Redirect("/"));;
        }
        public ActionResult EditNews(RegisterInformationModel create, HttpPostedFileBase[] files, int[] img_id)
        {
            if (Session["Captcha"] == null || Session["Captcha"].ToString() != create.tblCaptCha.Captcha)
            {
                ModelState.AddModelError("Captcha", "Wrong value of sum, please try again.");
                var dataCity = (from data in db.States
                                join datatext in db.StateTexts on data.name_id equals datatext.id
                                where datatext.language_id == "vi" && data.state_id != 59 && data.state_id != 28
                                select new GeoModel {
                    CityId = data.state_id, CityName = datatext.text
                }).ToList();

                dataCity.Insert(0, new GeoModel {
                    CityId = 0, CityName = "Chọn thành/phố"
                });
                dataCity.Insert(1, new GeoModel {
                    CityId = 59, CityName = "TP.Hồ Chí Minh"
                });
                dataCity.Insert(2, new GeoModel {
                    CityId = 28, CityName = "TP.Hà Nội"
                });
                CaptCha cap           = new CaptCha();
                BDSNew  BDSNew        = new BDSNew();
                var     registerModel = new RegisterInformationModel
                {
                    ListBDSScopes              = db.BDSScopes.ToList(),
                    ListMarriea                = db.BDSMarriages.ToList(),
                    ListSalary                 = db.BDSSalaries.ToList(),
                    ListDucation               = db.BDSEducations.ToList(),
                    ListBDSCareer              = db.BDSCareers.ToList(),
                    ListTimework               = db.BDSTimeWorks.ToList(),
                    ListBDSLanguage            = db.BDSLanguages.ToList(),
                    ListBDSNewsType            = db.BDSNewsTypes.OrderBy(x => x.Order).ToList(),
                    ListGeoModel               = dataCity.ToList(),
                    tblCaptCha                 = cap,
                    tblBDSNew                  = db.BDSNews.FirstOrDefault(x => x.ID == create.tblBDSNew.ID),
                    ListBDSEmployerInformation = db.BDSEmployerInformations.ToList(),
                    ListBdsAdcount             = db.BDSAccounts.ToList(),
                    ListBDSEmper               = db.BDSEmpers.ToList(),
                    ListBDSPicture             = db.BDSPictures.Where(x => x.advert_id == create.tblBDSNew.ID).ToList()
                };

                return(View(registerModel));
            }
            else
            {
                BDSNew tblNews = db.BDSNews.Find(create.tblBDSNew.ID);
                tblNews.Title            = create.tblBDSNew.Title;
                tblNews.AddressWork      = create.tblBDSNew.AddressWork;
                tblNews.FromSalary       = create.tblBDSNew.FromSalary;
                tblNews.ToSalary         = create.tblBDSNew.ToSalary;
                tblNews.Quantity         = create.tblBDSNew.Quantity;
                tblNews.Bonus            = create.tblBDSNew.Bonus;
                tblNews.Sex              = create.tblBDSNew.Sex;
                tblNews.IdTimeWork       = create.tblBDSNew.IdTimeWork;
                tblNews.IdEducation      = create.tblBDSNew.IdEducation;
                tblNews.Career           = create.tblBDSNew.Career;
                tblNews.DesCompany       = create.tblBDSNew.DesCompany;
                tblNews.DesWork          = create.tblBDSNew.DesWork;
                tblNews.Benefit          = create.tblBDSNew.Benefit;
                tblNews.FromAge          = create.tblBDSNew.FromAge;
                tblNews.ToAge            = create.tblBDSNew.ToAge;
                tblNews.TimeProbationary = create.tblBDSNew.TimeProbationary;
                tblNews.NameCompany      = create.tblBDSNew.NameCompany;
                tblNews.AddressApply     = create.tblBDSNew.AddressApply;
                tblNews.NamesContact     = create.tblBDSNew.NamesContact;
                tblNews.PhoneContact     = create.tblBDSNew.PhoneContact;
                tblNews.Email            = create.tblBDSNew.Email;
                tblNews.FromDeadline     = create.tblBDSNew.FromDeadline;
                tblNews.ToDeadline       = create.tblBDSNew.ToDeadline;
                tblNews.IdLanguage       = create.tblBDSNew.IdLanguage;
                tblNews.WebSiteCompany   = create.tblBDSNew.WebSiteCompany;
                tblNews.UrlImage         = create.tblBDSNew.UrlImage;

                tblNews.Career          = tblNews.Career.Substring(tblNews.Career.Length - 1) == "," ? tblNews.Career.Substring(0, tblNews.Career.Length - 1) : tblNews.Career;
                db.Entry(tblNews).State = EntityState.Modified;
                db.SaveChanges();
                if (img_id != null && img_id.Length > 0)
                {
                    var listPic = db.BDSPictures.Where(T => T.advert_id == tblNews.ID && !img_id.Contains(T.ID)).ToList();
                    foreach (var pic in listPic)
                    {
                        db.Entry(pic).State = EntityState.Deleted;
                    }
                }

                if (files != null && files.Length > 0)
                {
                    for (int i = 0; i < files.Length; i++)
                    {
                        if (files[i] != null)
                        {
                            byte[] binaryData;
                            binaryData = new Byte[files[i].InputStream.Length];
                            long bytesRead = files[i].InputStream.Read(binaryData, 0, (int)files[i].InputStream.Length);
                            files[i].InputStream.Close();
                            string base64String = System.Convert.ToBase64String(binaryData, 0, binaryData.Length);
                            SaveImg(new NewsPicture {
                                nameImg = files[i].FileName, idProducts = create.tblBDSNew.ID, isactive = 1, index = i, cfile = base64String
                            });
                        }
                    }
                }

                db.SaveChanges();


                var listMap = db.BDSNews_Career.Where(T => T.ID_News == tblNews.ID).ToList();
                foreach (var item in listMap)
                {
                    db.Entry(item).State = EntityState.Deleted;
                }
                db.SaveChanges();
                foreach (var item in create.tblBDSNew.Career.Split(','))
                {
                    if (!String.IsNullOrEmpty(item))
                    {
                        BDSNews_Career i = new BDSNews_Career {
                            ID_News = create.tblBDSNew.ID, ID_Career = int.Parse(item)
                        };
                        db.Entry(i).State = EntityState.Added;
                    }
                }
                db.SaveChanges();
                return(RedirectToAction("ListNewOfUser", "Management"));
            }
            return(null);
        }
Beispiel #4
0
        public ActionResult Create(BDSNew model, HttpPostedFileBase[] files)
        {
            if (!ModelState.IsValid)
            {
                LoadDataList();
                model.BDSPictures = _servicePicture.GetIQueryableItems().Where(T => T.Active == 1 && T.advert_id == model.ID).ToList();
                var list = (List <SelectListItem>)ViewBag.Careers;
                List <SelectListItem> lst = new List <SelectListItem>();
                foreach (var item in list)
                {
                    if (model.Career.Split(',').Contains(item.Value))
                    {
                        lst.Add(new SelectListItem {
                            Value = item.Value, Text = item.Text, Selected = true
                        });
                    }
                }


                ViewBag.MultiSelectCareer = lst;
                return(View(model));
            }
            var fromDate = model.FromDateToDateString.Split('-')[0];
            var toDate   = model.FromDateToDateString.Split('-')[1];

            model.FromCreateNews    = DateTime.Parse(fromDate.Trim(), MvcApplication.CultureInfo, DateTimeStyles.None);
            model.ToCreateNews      = DateTime.Parse(toDate.Trim(), MvcApplication.CultureInfo, DateTimeStyles.None);
            model.FromDeadline      = DateTime.Now;
            model.IdTypeNewsCuurent = model.IdTypeNews;
            model.ShowEmail         = model.ShowEmail;
            model.BDSAccount        = _serviceAccount.GetItem(model.IdAcount);
            model.KeySearch         = model.Title.NormalizeD() + " " + model.BDSAccount.Email + " " + _serviceNewsType.GetItem(model.IdTypeNews).Name.NormalizeD() + " " + _serviceEmployerInformation.GetIQueryableItems().Where(T => T.IdAccount == model.IdAcount).FirstOrDefault().Name + " " + model.DesCompany.NormalizeD();
            _service.UpdateItem(model);



            var type = _serviceNewsType.GetItem(model.IdTypeNewsCuurent);



            String Fname = "Đăng tin '{A}' trong vòng '{B}' ngày tổng giá phải trả '{C}' VNĐ";
            string name  = Fname.Replace("{A}", type.Name).Replace("{B}", ((int)Math.Ceiling(model.ToCreateNews.Value.Subtract(model.FromCreateNews.Value).TotalDays)) + "").Replace("{C}", model.TotalMoney.ToString("n2"));

            Davisoft_BDSProject.Domain.Entities.BDSTransactionHistory tran = new Davisoft_BDSProject.Domain.Entities.BDSTransactionHistory()
            {
                Name        = name,
                Description = name,
                KeySearch   = name.NormalizeD(),
                Active      = 1,
                CreateUser  = 1,
                CreateDate  = DateTime.Now,
                TypeTran    = 2,
                PointTran   = 0,
                MoneyTran   = model.TotalMoney,
                DateTran    = DateTime.Now,
                Status      = 0
            };
            _serviceTransactionHistory.CreateItem(tran);
            model.RefTranHis = tran.ID;
            _service.UpdateItem(model);
            model.BDSAccount.Money -= model.TotalMoney;
            _serviceAccount.UpdateItem(model.BDSAccount);
            var listMap = db.BDSNews_Career.Where(T => T.ID_News == model.ID).ToList();

            foreach (var item in listMap)
            {
                db.Entry(item).State = EntityState.Deleted;
            }
            db.SaveChanges();
            foreach (var item in model.Career.Split(','))
            {
                BDSNews_Career i = new BDSNews_Career {
                    ID_News = model.ID, ID_Career = int.Parse(item)
                };
                db.Entry(i).State = EntityState.Added;
            }
            db.SaveChanges();

            if (files != null && files.Length > 0)
            {
                for (int i = 0; i < files.Length; i++)
                {
                    if (files[i] != null)
                    {
                        byte[] binaryData;
                        binaryData = new Byte[files[i].InputStream.Length];
                        long bytesRead = files[i].InputStream.Read(binaryData, 0, (int)files[i].InputStream.Length);
                        files[i].InputStream.Close();
                        string base64String = System.Convert.ToBase64String(binaryData, 0, binaryData.Length);
                        SaveImg(new NewsPictures {
                            nameImg = files[i].FileName, idProducts = model.ID, isactive = 1, index = i, cfile = base64String
                        });
                    }
                }
            }
            db.SaveChanges();



            return(RedirectToAction("Index"));
        }
        public ActionResult AdvertCompany(RegisterInformationModel create, HttpPostedFileBase[] files)
        {
            create.Status = false;
            if (Session["Captcha"] == null || Session["Captcha"].ToString() != create.tblCaptCha.Captcha)
            {
                ModelState.AddModelError("Captcha", "Wrong value of sum, please try again.");
                create.Msg = "Capcha không chính xác!";
                var dataCity = (from data in db.States
                                join datatext in db.StateTexts on data.name_id equals datatext.id
                                where datatext.language_id == "vi" && data.state_id != 59 && data.state_id != 28
                                select new GeoModel {
                    CityId = data.state_id, CityName = datatext.text
                }).ToList();

                dataCity.Insert(0, new GeoModel {
                    CityId = 0, CityName = "Chọn thành/phố"
                });
                dataCity.Insert(1, new GeoModel {
                    CityId = 59, CityName = "TP.Hồ Chí Minh"
                });
                dataCity.Insert(2, new GeoModel {
                    CityId = 28, CityName = "TP.Hà Nội"
                });
                CaptCha cap           = new CaptCha();
                var     registerModel = new RegisterInformationModel
                {
                    ListBDSScopes   = db.BDSScopes.Where(T => T.Active == 1).ToList(),
                    ListMarriea     = db.BDSMarriages.Where(T => T.Active == 1).ToList(),
                    ListSalary      = db.BDSSalaries.Where(T => T.Active == 1).ToList(),
                    ListDucation    = db.BDSEducations.Where(T => T.Active == 1).ToList(),
                    ListBDSCareer   = db.BDSCareers.Where(T => T.Active == 1).ToList(),
                    ListTimework    = db.BDSTimeWorks.Where(T => T.Active == 1).OrderBy(x => x.Type).ToList(),
                    ListBDSLanguage = db.BDSLanguages.Where(T => T.Active == 1).ToList(),
                    ListBDSNewsType = db.BDSNewsTypes.Where(T => T.Active == 1).OrderBy(x => x.Order).ToList(),
                    ListGeoModel    = dataCity.ToList(),
                    tblCaptCha      = cap,
                    Msg             = "Capcha không chính xác!",
                    Status          = false
                };
                return(Json(registerModel));
            }
            else
            {
                var checkMoney = false;
                if (Session["IdUser"] != null)
                {
                    int id    = int.Parse(Session["IdUser"].ToString());
                    var model = db.BDSAccounts.FirstOrDefault(T => T.ID == id);
                    if (model != null)
                    {
                        if (model.Money >= create.tblBDSNew.TotalMoney)
                        {
                            checkMoney = true;
                        }
                    }
                }

                if (!checkMoney)
                {
                    create.Msg = "Số tiền trong tài khoản không đủ!";
                    ModelState.AddModelError("TotalMoney", "Số tiền trong tài khoản không đủ!");
                    var dataCity = (from data in db.States
                                    join datatext in db.StateTexts on data.name_id equals datatext.id
                                    where datatext.language_id == "vi" && data.state_id != 59 && data.state_id != 28
                                    select new GeoModel {
                        CityId = data.state_id, CityName = datatext.text
                    }).ToList();

                    dataCity.Insert(0, new GeoModel {
                        CityId = 0, CityName = "Chọn thành/phố"
                    });
                    dataCity.Insert(1, new GeoModel {
                        CityId = 59, CityName = "TP.Hồ Chí Minh"
                    });
                    dataCity.Insert(2, new GeoModel {
                        CityId = 28, CityName = "TP.Hà Nội"
                    });
                    CaptCha cap = new CaptCha();

                    var registerModel = new RegisterInformationModel
                    {
                        ListBDSScopes   = db.BDSScopes.Where(T => T.Active == 1).ToList(),
                        ListMarriea     = db.BDSMarriages.Where(T => T.Active == 1).ToList(),
                        ListSalary      = db.BDSSalaries.Where(T => T.Active == 1).ToList(),
                        ListDucation    = db.BDSEducations.Where(T => T.Active == 1).ToList(),
                        ListBDSCareer   = db.BDSCareers.Where(T => T.Active == 1).ToList(),
                        ListTimework    = db.BDSTimeWorks.Where(T => T.Active == 1).OrderBy(x => x.Type).ToList(),
                        ListBDSLanguage = db.BDSLanguages.Where(T => T.Active == 1).ToList(),
                        ListBDSNewsType = db.BDSNewsTypes.Where(T => T.Active == 1).OrderBy(x => x.Order).ToList(),
                        ListGeoModel    = dataCity.ToList(),
                        tblCaptCha      = cap,
                    };
                    return(Json(registerModel));
                }
                create.tblBDSNew.IdAcount     = int.Parse(Session["IdUser"].ToString());
                create.tblBDSNew.FromDeadline = DateTime.Now;
                create.tblBDSNew.CreateDate   = DateTime.Now;
                create.tblBDSNew.Active       = 1;
                create.tblBDSNew.Status       = 0;
                create.tblBDSNew.CountReup    = 0;
                create.tblBDSNew.MaxReup      = 0;
                create.tblBDSNew.CreateUser   = 1;
                create.tblBDSNew.ShowEmail    = 0;

                create.tblBDSNew.Career            = create.tblBDSNew.Career.Substring(create.tblBDSNew.Career.Length - 1) == "," ? create.tblBDSNew.Career.Substring(0, create.tblBDSNew.Career.Length - 1) : create.tblBDSNew.Career;
                create.tblBDSNew.IdTypeNewsCuurent = create.tblBDSNew.IdTypeNews;
                db.Entry(create.tblBDSNew).State   = EntityState.Added;
                db.SaveChanges();
                if (files != null && files.Length > 0)
                {
                    for (int i = 0; i < files.Length; i++)
                    {
                        if (files[i] != null)
                        {
                            byte[] binaryData;
                            binaryData = new Byte[files[i].InputStream.Length];
                            long bytesRead = files[i].InputStream.Read(binaryData, 0, (int)files[i].InputStream.Length);
                            files[i].InputStream.Close();
                            string base64String = System.Convert.ToBase64String(binaryData, 0, binaryData.Length);
                            SaveImg(new NewsPicture {
                                nameImg = files[i].FileName, idProducts = create.tblBDSNew.ID, isactive = 1, index = i, cfile = base64String
                            });
                        }
                    }
                }



                foreach (var item in create.tblBDSNew.Career.Split(','))
                {
                    if (!String.IsNullOrEmpty(item))
                    {
                        BDSNews_Career i = new BDSNews_Career {
                            ID_News = create.tblBDSNew.ID, ID_Career = int.Parse(item)
                        };
                        db.Entry(i).State = EntityState.Added;
                    }
                }
                db.SaveChanges();

                var    type  = db.BDSNewsTypes.First(T => T.ID == create.tblBDSNew.IdTypeNewsCuurent.Value);
                String Fname = "Đăng tin '{A}' trong vòng '{B}' ngày tổng giá phải trả '{C}' VNĐ";
                string name  = Fname.Replace("{A}", type.Name).Replace("{B}", ((int)Math.Ceiling(create.tblBDSNew.ToCreateNews.Value.Subtract(create.tblBDSNew.FromCreateNews.Value).TotalDays)) + "").Replace("{C}", create.tblBDSNew.TotalMoney.Value.ToString("n2"));
                BDSTransactionHistory tran = new BDSTransactionHistory()
                {
                    Name        = name,
                    Description = name,
                    KeySearch   = name.NormalizeD(),
                    Active      = 1,
                    CreateUser  = 1,
                    CreateDate  = DateTime.Now,
                    TypeTran    = 2,
                    PointTran   = 0,
                    MoneyTran   = create.tblBDSNew.TotalMoney.Value,
                    DateTran    = DateTime.Now,
                    Status      = 0,
                    IdAccount   = int.Parse(Session["IdUser"].ToString())
                };
                create.tblBDSNew = db.BDSNews.First(T => T.ID == create.tblBDSNew.ID);
                db.BDSTransactionHistories.Add(tran);
                db.SaveChanges();
                create.tblBDSNew.RefTranHis      = tran.ID;
                db.Entry(create.tblBDSNew).State = EntityState.Modified;
                db.SaveChanges();
                var account = db.BDSAccounts.First(T => T.ID == create.tblBDSNew.IdAcount);
                account.Money          -= create.tblBDSNew.TotalMoney;
                db.Entry(account).State = EntityState.Modified;
                db.SaveChanges();



                create.Msg    = "Đăng tin thành công!";
                create.Status = true;
                return(Json(create));
            }
            return(null);
        }