public PackageDistributeViewModel(SmsPackagesDistribute PackagesDistribute, string connectionString) : this() { context = new MySqlContext(new MySqlConnectionFactory(connectionString)); Id = PackagesDistribute.Id; SmsPackageId = PackagesDistribute.SmsPackageId; HealthFacilitiesId = PackagesDistribute.HealthFacilitiesId; SmsBrandsId = PackagesDistribute.SmsBrandsId; YearStart = PackagesDistribute.YearStart; YearEnd = PackagesDistribute.YearEnd; MonthStart = PackagesDistribute.MonthStart; MonthEnd = PackagesDistribute.MonthEnd; IsActive = PackagesDistribute.IsActive; var Packages = context.JoinQuery <SmsPackagesDistribute, SmsPackage>((d, p) => new object[] { JoinType.InnerJoin, d.SmsPackageId == p.Id }) .Where((d, p) => d.Id == PackagesDistribute.Id) .Select((d, p) => p).FirstOrDefault(); var pack = context.Query <SmsPackage>().Where(p => p.Id == PackagesDistribute.SmsPackageId).FirstOrDefault(); var HealthFacilities = context.JoinQuery <SmsPackagesDistribute, HealthFacilities>((d, h) => new object[] { JoinType.InnerJoin, d.HealthFacilitiesId == h.HealthFacilitiesId }) .Where((d, h) => d.Id == PackagesDistribute.Id && d.IsDelete == false && h.IsDelete == false && h.IsActive == true) .Select((d, h) => h).FirstOrDefault(); var health = context.Query <HealthFacilities>().Where(h => h.HealthFacilitiesId == PackagesDistribute.HealthFacilitiesId).FirstOrDefault(); SmsBrand = context.JoinQuery <SmsPackagesDistribute, SmsBrands>((d, b) => new object[] { JoinType.InnerJoin, d.SmsBrandsId == b.SmsBrandId }) .Where((d, b) => d.Id == PackagesDistribute.Id && d.IsDelete == false) .Select((d, b) => b).FirstOrDefault(); SmsPackageUsed = context.JoinQuery <SmsPackagesDistribute, SmsPackageUsed>((d, u) => new object[] { JoinType.InnerJoin, d.Id == u.SmsPackageDistributeId }) .Where((d, u) => d.Id == Id && d.IsDelete == false && d.IsActive == true && u.IsDelete == false).Select((d, u) => u).FirstOrDefault(); PackageName = pack != null ? pack.Name : ""; Quantity = Packages != null ? Packages.Quantity : 0; Cost = Packages != null ? Packages.Cost : 0; HealthFacilitiesName = health != null ? health.Name : ""; HealthFacilitiesCode = health != null ? health.Code : ""; SmsBrandsName = SmsBrand != null ? SmsBrand.BrandName : ""; }
public IActionResult CreatePackageDistribute([FromBody] PackageDistributeInputViewModelArray obj) { var package = _context.Query <SmsPackage>().Where(g => g.Id == obj.SmsPackageId && g.IsDelete == false).FirstOrDefault(); if (package == null) { return(StatusCode(406, _excep.Throw(406, "Gói SMS đã chọn không tồn tại."))); } var smsPackagesDistributes = _context.Query <SmsPackagesDistribute>(); int packageDistributeId = smsPackagesDistributes.ToList().Count == 0 ? 0 : smsPackagesDistributes.OrderByDesc(pd => pd.Id).FirstOrDefault().Id; List <SmsPackagesDistribute> lstPD = new List <SmsPackagesDistribute>(); //List<SmsPackageUsed> lstPU = new List<SmsPackageUsed>(); //GetTotal(string.Concat(obj.MonthStart, "/", obj.YearStart), string.Concat(obj.MonthEnd, "/", obj.YearEnd)); for (int i = 0; i < obj.HealthFacilitiesId.Count; i++) { SmsPackagesDistribute pd = new SmsPackagesDistribute(); pd.HealthFacilitiesId = obj.HealthFacilitiesId[i]; pd.MonthStart = obj.MonthStart; pd.MonthEnd = obj.MonthEnd; pd.YearStart = obj.YearStart; pd.YearEnd = obj.YearEnd; pd.IsActive = obj.IsActive; pd.SmsPackageId = obj.SmsPackageId; pd.SmsBrandsId = obj.SmsBrandsId; pd.CreateDate = DateTime.Now; pd.CreateUserId = obj.UserId; pd.IsDelete = false; //SmsPackageUsed pu = new SmsPackageUsed(); //pu.SmsPackageId = obj.SmsPackageId; //pu.HealthFacilitiesId = obj.HealthFacilitiesId[i]; //pu.Quantityused = package.Quantity; //pu.CreateDate = DateTime.Now; //pu.CreateUserId = obj.UserId; //if (_context.Query<SmsPackagesDistribute>().Where(g => g.HealthFacilitiesId == pd.HealthFacilitiesId && g.SmsPackageId == obj.SmsPackageId && g.IsDelete == false).Count() > 0) //{ // var healthFacilities = _context.Query<HealthFacilities>().Where(h => h.HealthFacilitiesId == pd.HealthFacilitiesId).FirstOrDefault(); // return StatusCode(500, _excep.Throw("Đăng ký gói không thành công.", (healthFacilities != null ? healthFacilities.Name : "") + " đã đăng ký gói SMS.")); //} //add //lstPU.Add(pu); //lstPD.Add(pd); _context.Insert(pd); } try { for (int i = 0; i < obj.HealthFacilitiesId.Count; i++) { var pu = new SmsPackageUsed(); pu.SmsPackageDistributeId = packageDistributeId + i + 1; pu.Quantityused = package.Quantity; pu.CreateDate = DateTime.Now; pu.CreateUserId = obj.UserId; _context.Insert(pu); } return(Json(new ActionResultDto())); } catch (Exception e) { return(Json(new ActionResultDto { Error = e.Message })); } }