示例#1
0
        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 : "";
        }
示例#2
0
        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
                }));
            }
        }