Example #1
0
        public async Task <IActionResult> PutMemberLevel(int id, MemberLevel memberLevel)
        {
            if (id != memberLevel.MemberLevelId)
            {
                return(BadRequest());
            }

            _context.Entry(memberLevel).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MemberLevelExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Example #2
0
        public async Task <ActionResult <MemberLevel> > PostMemberLevel(MemberLevel memberLevel)
        {
            _context.MemberLevel.Add(memberLevel);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetMemberLevel", new { id = memberLevel.MemberLevelId }, memberLevel));
        }
 //---------------------------------------------------------------------
 public RequestOption(string country, string state, MemberLevel level)
 {
     this.type    = RequestType.rtMemberLevel;
     this.country = country;
     this.state   = state;
     this.level   = level;
 }
Example #4
0
 public MemberLevelDto(MemberLevel memberLevel)
 {
     MemberLevel              = memberLevel.Level;
     MemberLevelText          = memberLevel.LevelText;
     MemberLevelThreshold     = memberLevel.Threshold;
     MemberLevelThresholdText = $"{memberLevel.Threshold} pts collected in the past 12 months";
 }
Example #5
0
        //[InlineData(1, 8, MemberLevel.Basic)]
        //[InlineData(1, 15, MemberLevel.Free)]
        public void SubscribeBasicPackage(DateTime checkDate,
                                          MemberLevel checkLevel)
        {
            // a
            var basicPackage = new Package {
                Code  = "BASIC",
                Name  = "Basic 10 days",
                Level = MemberLevel.Basic,
                Days  = 10,
                Price = 100m,
            };

            var dt1 = new DateTime(2020, 1, 1);
            //var checkDate = new DateTime(2020, month, day);

            var m = new Member();

            m.Nickname = "Alice";

            // a
            Subscription sub = m.Subscribe(
                package: basicPackage,
                date: dt1,
                paidAmount: 100m);

            var level = m.LevelAtDate(checkDate);

            // a
            Assert.NotNull(sub);
            Assert.Equal(dt1, sub.Date);
            Assert.Same(basicPackage, sub.Package);

            Assert.Equal(checkLevel, level);
        }
Example #6
0
 public OpResult CreateMemberLevel(MemberLevel level)
 {
     level.CompanyId = CommonService.CompanyId;
     if (level.Id == 0)
     {
         level.CreateDT  = DateTime.Now;
         level.CreateUID = Sys.CurrentUser.UID;
         level.State     = 0;//默认生效
         level.LevelSN   = 0;
         var maxLevel = _memberLevelService.GetTop1MemberLevelByDTDesc();
         if (maxLevel != null)
         {
             level.LevelSN = maxLevel.LevelSN + 1;
         }
         if (level.Discount <= 0)//没有折扣保存-1
         {
             level.Discount = -1;
         }
         return(_memberLevelService.CreateMemberLevel(level));
     }
     else
     {
         return(_memberLevelService.UpdateMemberLevel(level));
     }
 }
Example #7
0
        //Add a Membership Level
        public int AddMemberLevel(MemberLevel objMemberLevel)
        {
            //Preparing SQL statements
            string sql = "Insert into MemberLevel(LevelId, LevelName, LevelMonths, MaxBorrowNum, MaxBorrowDays, Deposit) ";

            sql += " Values(@LevelId, @LevelName, @LevelMonths, @MaxBorrowNum, @MaxBorrowDays, @Deposit)";
            //Preparing parameters in SQL statements
            SqlParameter[] para = new SqlParameter[]
            {
                new SqlParameter("@LevelId", objMemberLevel.LevelId),
                new SqlParameter("@LevelName", objMemberLevel.LevelName),
                new SqlParameter("@LevelMonths", objMemberLevel.LevelMonths),
                new SqlParameter("@MaxBorrowNum", objMemberLevel.MaxBorrowNum),
                new SqlParameter("@MaxBorrowDays", objMemberLevel.MaxBorrowDays),
                new SqlParameter("@Deposit", objMemberLevel.Deposit),
            };
            //Submit
            try
            {
                return(SQLHelper.Update(sql, para));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #8
0
        public async Task InsertAsync(MemberLevel memberLevel)
        {
            var query = @"INSERT INTO MemberLevel(`Level`, LevelText, Threshold)
                          VALUES (@Level, @LevelText, @Threshold)";

            using (var connection = DbConnection)
            {
                await connection.ExecuteAsync(query, memberLevel);
            }
        }
        public MemberLevel GetMemberLevelByLevelVal(int levelVal)
        {
            var result = _context.MemberLevel.Where(o => o.MemberLevelValue == levelVal && o.IsDeleted != 1).FirstOrDefault();

            if (result == null)
            {
                result = new MemberLevel();
            }
            return(result);
        }
        public ActionResult Edit(string memberLevelId)
        {
            MemberLevel memberLevel = new MemberLevel();

            if (!string.IsNullOrEmpty(memberLevelId))
            {
                var ml = _memberLevelService.Find <MemberLevel>(memberLevelId);
                if (ml != null)
                {
                    memberLevel = ml;
                }
            }
            return(View(memberLevel));
        }
        /// <summary>
        /// 新增或修改会员等级
        /// </summary>
        /// <param name="memberLevel"></param>
        /// <returns></returns>
        public OpResult SaveOrUpdate(MemberLevel memberLevel, string currentUserId)
        {
            var result = new OpResult();

            if (!string.IsNullOrEmpty(memberLevel.Id))
            {
                //更新
                var newMemberLevel = _context.MemberLevel.Where(o => o.Id == memberLevel.Id).FirstOrDefault();
                if (newMemberLevel.MemberLevelValue != memberLevel.MemberLevelValue)
                {
                    var sameMemberLevel = _context.MemberLevel.Where(o => o.MemberLevelValue == memberLevel.MemberLevelValue && o.IsDeleted != 1).FirstOrDefault();
                    if (sameMemberLevel != null)
                    {
                        result = OpResult.Fail("对不起,该会员等级值已存在");
                        return(result);
                    }
                }
                newMemberLevel.ModifiedBy            = currentUserId;
                newMemberLevel.ModifiedOn            = DateTime.Now;
                newMemberLevel.Title                 = memberLevel.Title;
                newMemberLevel.MemberLevelValue      = memberLevel.MemberLevelValue;
                newMemberLevel.MinGrowthValue        = memberLevel.MinGrowthValue;
                newMemberLevel.MaxGrowthValue        = memberLevel.MaxGrowthValue;
                newMemberLevel.DiscountRate          = memberLevel.DiscountRate / 100;
                newMemberLevel.IntegralMultiples     = memberLevel.IntegralMultiples;
                newMemberLevel.GrowthValueMultiples  = memberLevel.GrowthValueMultiples;
                newMemberLevel.Remark                = memberLevel.Remark;
                newMemberLevel.YearDeductGrowthValue = memberLevel.YearDeductGrowthValue;
            }
            else
            {
                //新增
                var sameMemberLevel = _context.MemberLevel.Where(o => o.MemberLevelValue == memberLevel.MemberLevelValue && o.IsDeleted != 1).FirstOrDefault();
                if (sameMemberLevel != null)
                {
                    result = OpResult.Fail("对不起,该会员等级值已存在");
                    return(result);
                }
                memberLevel.Id           = CommonRules.GUID;
                memberLevel.CreatedOn    = DateTime.Now;
                memberLevel.CreatedBy    = currentUserId;
                memberLevel.DiscountRate = memberLevel.DiscountRate / 100;
                _context.MemberLevel.Add(memberLevel);
            }
            if (_context.SaveChanges() > 0)
            {
                result = OpResult.Success("操作成功");
            }
            return(result);
        }
        public ActionResult GetAllMemberLevelBindCombobox(bool isAddAll)
        {
            List <MemberLevel> result = new List <MemberLevel>();

            //添加全部选项
            if (isAddAll)
            {
                MemberLevel level = new MemberLevel();
                level.Title            = "全部";
                level.MemberLevelValue = -1;
                result.Add(level);
            }
            //将数据插入
            result.AddRange(_memberLevelService.GetAllMemberLevel());
            return(Json(result));
        }
        public async Task CreateOrEditAsync(MemberLevel dto)
        {
            dto.TenantId = _AbpSession.TenantId;
            if (dto.Id > 0)
            {
                await _Repository.UpdateAsync(dto);

                // return new JsonResult(new { succ = true, msg = "" });
            }
            else
            {
                await _Repository.InsertAsync(dto);

                //  return new JsonResult(new { succ = true, msg = "" });
            }
        }
Example #14
0
        //Go back to all information about the membership level by name
        public MemberLevel GetMemberLevelByName(string levelName)
        {
            //SQL Statement to prepare query
            string sql = "Select LevelId,LevelName,LevelMonths,MaxBorrowNum,MaxBorrowDays,Deposit from MemberLevel Where LevelName=@LevelName ";

            //Provide parameters in a statement
            SqlParameter[] para = new SqlParameter[]
            {
                new SqlParameter("@LevelName", levelName),
            };

            //Execution and return values
            try
            {
                //Receive SqlDataReader type
                SqlDataReader objReader = SQLHelper.GetReader(sql, para);
                //Determine if it is empty
                if (!objReader.HasRows)
                {
                    return(null);
                }
                //If it is not empty, it is stored <MemberLeveL>in</MemberLeveL> the list
                MemberLevel objLevel = new MemberLevel();
                //read
                while (objReader.Read())
                {
                    objLevel = new MemberLevel()
                    {
                        LevelId       = Convert.ToInt32(objReader["LevelId"]),
                        LevelName     = objReader["LevelName"].ToString(),
                        LevelMonths   = Convert.ToInt32(objReader["LevelMonths"]),
                        MaxBorrowNum  = Convert.ToInt32(objReader["MaxBorrowNum"]),
                        MaxBorrowDays = Convert.ToInt32(objReader["MaxBorrowDays"]),
                        Deposit       = Convert.ToDouble(objReader["Deposit"]),
                    };
                }
                //Close read
                objReader.Close();
                //Return value
                return(objLevel);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #15
0
        private MemberLevel GetLevel(long UserId, Domain.Entities.Chatrooms.Chatroom chatroom)
        {
            MemberLevel Level = MemberLevel.Member;

            if (chatroom.CreatorId == UserId)
            {
                Level = MemberLevel.Master;
            }
            else
            {
                if (_context.AdminInChatrooms.Any(a => a.UserId == UserId && a.ChatroomId == chatroom.Id))
                {
                    Level = MemberLevel.Admin;
                }
            }

            return(Level);
        }
Example #16
0
        public static MemberLevel GetMemberLevelByID(string levelid)
        {
            if (string.IsNullOrEmpty(levelid))
            {
                return(null);
            }
            var list = GetMemberLevel();

            if (list.Where(m => m.LevelID == levelid).Count() > 0)
            {
                return(list.Where(m => m.LevelID == levelid).FirstOrDefault());
            }
            MemberLevel model = new MemberLevel();
            DataTable   dt    = WebSetDAL.BaseProvider.GetMemberLevelByLevelID(levelid);

            if (dt.Rows.Count > 0)
            {
                model.FillData(dt.Rows[0]);
                list.Add(model);
            }
            return(model);
        }
Example #17
0
        //====================================Control events==========================================


        private void lvMemeberLevel_Click(object sender, EventArgs e)
        {
            //Instantiate an object of a membership level
            MemberLevel objMemberLevel = new MemberLevel();

            //Get name
            objMemberLevel.LevelName = lvMemeberLevel.SelectedItems[0].Text;
            //"Method 1": Find by name to database
            //try
            //{
            //    objMemberLevel = objMemberLevelServices.GetMemberLevelByName(objMemberLevel.LevelName);
            //}
            //catch (Exception ex)
            //{
            //    MessageBox.Show("Get membership level information through the rank name exception occurs! Specific reasons:" + ex.Message, "System Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            //}

            //"Method 2": Find in the local List
            for (int i = 0; i < objListLevel.Count; i++)
            {
                if (objListLevel[i].LevelName == objMemberLevel.LevelName)
                {
                    objMemberLevel.LevelId       = objListLevel[i].LevelId;
                    objMemberLevel.LevelMonths   = objListLevel[i].LevelMonths;
                    objMemberLevel.MaxBorrowNum  = objListLevel[i].MaxBorrowNum;
                    objMemberLevel.MaxBorrowDays = objListLevel[i].MaxBorrowDays;
                    objMemberLevel.Deposit       = objListLevel[i].Deposit;
                    break;
                }
            }

            //Display Date
            lblLevelId.Text       = objMemberLevel.LevelId.ToString();
            txtLevelName.Text     = objMemberLevel.LevelName;
            txtLevelMonths.Text   = objMemberLevel.LevelMonths.ToString();
            txtMaxBorrowNum.Text  = objMemberLevel.MaxBorrowNum.ToString();
            txtMaxBorrowDays.Text = objMemberLevel.MaxBorrowDays.ToString();
            txtDeposit.Text       = objMemberLevel.Deposit.ToString("0.00");
        }
Example #18
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="type">0:会员等级 1 优惠活动</param>
 /// <returns></returns>
 public static List <MemberLevel> GetMemberLevel(int type = 0)
 {
     if (MemberLevelList.Count == 0)
     {
         List <MemberLevel> list = new List <MemberLevel>();
         DataTable          dt   = WebSetDAL.BaseProvider.GetMemberLevel();
         foreach (DataRow dr in dt.Rows)
         {
             MemberLevel model = new MemberLevel();
             model.FillData(dr);
             list.Add(model);
         }
         MemberLevelList.AddRange(list);
     }
     if (type > -1)
     {
         return(MemberLevelList.Where(x => x.Type == type).ToList());
     }
     else
     {
         return(MemberLevelList.ToList());
     }
 }
Example #19
0
        //Modify Membership Level
        public int UpdateMemberLevel(MemberLevel objMemberLevel)
        {
            //Preparing SQL statements
            string sql = "Update MemberLevel Set LevelMonths=@LevelMonths,MaxBorrowNum=@MaxBorrowNum,MaxBorrowDays=@MaxBorrowDays,Deposit=@Deposit Where LevelId=@LevelId";

            //Preparing parameters in SQL statements
            SqlParameter[] para = new SqlParameter[]
            {
                new SqlParameter("@LevelId", objMemberLevel.LevelId),
                new SqlParameter("@LevelMonths", objMemberLevel.LevelMonths),
                new SqlParameter("@MaxBorrowNum", objMemberLevel.MaxBorrowNum),
                new SqlParameter("@MaxBorrowDays", objMemberLevel.MaxBorrowDays),
                new SqlParameter("@Deposit", objMemberLevel.Deposit),
            };
            //Submit
            try
            {
                return(SQLHelper.Update(sql, para));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #20
0
        public ActionResult FreeCreate([Bind(Include = "Id,MemberLevel,DateTime,Account,Password,ApplicationStatus,ApproveDateTime,DisenableDateTime,NoticeDateTime,ContactPerson,ContactPersonPhone,Address,Extension,Fax,CurrentIdentity,CurrentUnit,JobTitle,MobilePhone,IdCard,Email,Phone,BusinessItem,Demand,Subscription,EditUser,LastEditDateTime")] MbFreeViewModel mbFreeViewModel, MemberLevel memberLevel)
        {
            if (ModelState.IsValid)
            {
                Member member = new Member();
                member.MemberLevel        = memberLevel;
                member.Account            = mbFreeViewModel.Account;
                member.Password           = mbFreeViewModel.Password;
                member.NoticeDateTime     = mbFreeViewModel.NoticeDateTime;
                member.CurrentIdentity    = mbFreeViewModel.CurrentIdentity;
                member.CurrentUnit        = mbFreeViewModel.CurrentUnit;
                member.JobTitle           = mbFreeViewModel.JobTitle;
                member.MobilePhone        = mbFreeViewModel.MobilePhone;
                member.IdCard             = mbFreeViewModel.IdCard;
                member.Email              = mbFreeViewModel.Email;
                member.Phone              = mbFreeViewModel.Phone;
                member.BusinessItem       = mbFreeViewModel.BusinessItem;
                member.ContactPerson      = mbFreeViewModel.ContactPerson;
                member.ContactPersonPhone = mbFreeViewModel.ContactPersonPhone;
                member.Address            = mbFreeViewModel.Address;
                member.Extension          = Convert.ToInt32(mbFreeViewModel.Extension);
                member.Fax              = mbFreeViewModel.Fax;
                member.Demand           = mbFreeViewModel.Demand;
                member.Subscription     = mbFreeViewModel.Subscription;
                member.DateTime         = DateTime.Now;
                member.LastEditDateTime = DateTime.Now;
                member.EditUser         = mbFreeViewModel.Account;

                db.Members.Add(member);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(mbFreeViewModel));
        }
Example #21
0
        private void btnCommit_Click(object sender, EventArgs e)
        {
            //【1】 Checksum input
            if (!CheckMemberLevelInput())
            {
                return;
            }

            //【2】 Encapsulating data to Objects
            MemberLevel objMemberLevel = new MemberLevel()
            {
                LevelId       = Convert.ToInt32(lblLevelId.Text),
                LevelName     = txtLevelName.Text.Trim(),
                LevelMonths   = Convert.ToInt32(txtLevelMonths.Text.Trim()),
                MaxBorrowNum  = Convert.ToInt32(txtMaxBorrowNum.Text.Trim()),
                MaxBorrowDays = Convert.ToInt32(txtMaxBorrowDays.Text.Trim()),
                Deposit       = Convert.ToDouble(txtDeposit.Text.Trim()),
            };

            //【3】 Submit
            switch (actionFlag)
            {
            case 1:    //Add
                try
                {
                    if (objMemberLevelServices.AddMemberLevel(objMemberLevel) == 1)
                    {
                        //Notice successful
                        MessageBox.Show("Added Membership Level Added Successfully!", "System Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        //Refresh
                        LoadMemberLevelInfo();

                        //Disable Detail
                        gboxMemberLevel.Enabled = false;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("There is an exception to adding membership level! Specific reasons:" + ex.Message, "System Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                break;

            case 2:     //Modify
                try
                {
                    if (objMemberLevelServices.UpdateMemberLevel(objMemberLevel) == 1)
                    {
                        //Notice Successful
                        MessageBox.Show("Modify membership level to add success!", "System Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        //Refresh
                        LoadMemberLevelInfo();

                        //Disable Detail
                        gboxMemberLevel.Enabled = false;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("There is an exception in modifying the membership level! __________ Specific reasons:" + ex.Message, "System Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                break;
            }
        }
Example #22
0
 public string ParsePageMembership(MemberLevel memberLevel);
Example #23
0
 public ActionResult MemberEdit([Bind(Include = "Id,DateTime,Account,Password,CompanyName,CompanyNumber,Principal,PrincipalJobTitle,CompanyPhone,CompanyUrl,ContactPersonJobTitle,EmployeeCount,CompanyType,Industry,Training,CompanyIntroduction,Business,CompanyPhoto,ContactPerson,ContactPersonPhone,ContactPersonEmail,Address,Extension,Fax,Demand,Subscription,EditUser,LastEditDateTime")] MbPaidViewModel mbPaidViewModel, HttpPostedFileBase companyPhone, MemberLevel applicationType, string addPassword)
 {
     if (Session["member"] != null)
     {
         Member mbr    = (Member)Session["member"];
         Member member = new Member();
         member.Id                = mbr.Id;
         member.MemberLevel       = applicationType;
         member.ApplicationStatus = mbr.ApplicationStatus;
         member.Account           = mbPaidViewModel.Account;
         if (!String.IsNullOrEmpty(addPassword))
         {
             member.PasswordSalt = Utility.CreateSalt();
             member.Password     = Utility.GenerateHashWithSalt(mbPaidViewModel.Password, member.PasswordSalt);
         }
         else
         {
             member.PasswordSalt = mbr.PasswordSalt;
             member.Password     = mbPaidViewModel.Password;
         }
         member.CompanyName           = mbPaidViewModel.CompanyName;
         member.CompanyNumber         = mbPaidViewModel.CompanyNumber;
         member.Principal             = mbPaidViewModel.Principal;
         member.PrincipalJobTitle     = mbPaidViewModel.PrincipalJobTitle;
         member.CompanyPhone          = mbPaidViewModel.CompanyPhone;
         member.CompanyUrl            = mbPaidViewModel.CompanyUrl;
         member.ContactPersonJobTitle = mbPaidViewModel.ContactPersonJobTitle;
         member.EmployeeCount         = Convert.ToInt32(mbPaidViewModel.EmployeeCount);
         member.ContactPersonEmail    = mbPaidViewModel.ContactPersonEmail;
         member.CompanyType           = mbPaidViewModel.CompanyType;
         member.Industry            = mbPaidViewModel.Industry;
         member.Training            = mbPaidViewModel.Training;
         member.CompanyIntroduction = mbPaidViewModel.CompanyIntroduction;
         member.Business            = mbPaidViewModel.Business;
         member.CompanyPhone        = mbPaidViewModel.CompanyPhone;
         member.ContactPerson       = mbPaidViewModel.ContactPerson;
         member.ContactPersonPhone  = mbPaidViewModel.ContactPersonPhone;
         member.Address             = mbPaidViewModel.Address;
         member.Extension           = Convert.ToInt32(mbPaidViewModel.Extension);
         member.Fax              = mbPaidViewModel.Fax;
         member.Demand           = mbPaidViewModel.Demand;
         member.Subscription     = mbPaidViewModel.Subscription;
         member.DateTime         = DateTime.Now;
         member.LastEditDateTime = DateTime.Now;
         member.EditUser         = mbPaidViewModel.Account;
         if (companyPhone != null)
         {
             if (companyPhone.ContentType.IndexOf("image", System.StringComparison.Ordinal) == -1)
             {
                 ViewBag.message = "檔案類型錯誤";
                 return(View());
             }
             member.CompanyPhoto = Utility.SaveUpImage(companyPhone);
             Utility.GenerateThumbnailImage(member.CompanyPhoto, companyPhone.InputStream, Server.MapPath("~/UpFile/Images"),
                                            "s", 138, 99);
         }
         db.Entry(member).State = EntityState.Modified;
         db.SaveChanges();
         TempData["memberError"] = "更新成功";
         return(RedirectToAction("MemberEdit", "MemberCentre"));
     }
     return(View(mbPaidViewModel));
 }
Example #24
0
 public MemberLevel Add(MemberLevel entity)
 {
     return(_memberLevel.Add(entity));
 }
Example #25
0
 public MemberLevel Delete(MemberLevel entity)
 {
     return(_memberLevel.Delete(entity));
 }
        public ActionResult SaveOrUpdate(MemberLevel memberLevel)
        {
            var result = _memberLevelService.SaveOrUpdate(memberLevel, UserCache.CurrentUser.Id);

            return(Json(result));
        }
Example #27
0
 public MemberLevel Update(MemberLevel entity, List <Expression <Func <MemberLevel, object> > > update = null, List <Expression <Func <MemberLevel, object> > > exclude = null)
 {
     return(_memberLevel.Update(entity, update, exclude));
 }
Example #28
0
        /// <summary>
        /// 获取价格
        /// </summary>
        /// <param name="productId"></param>
        /// <param name="areaid"></param>
        /// <param name="time"></param>
        /// <param name="skuNames"></param>
        /// <param name="units"></param>
        /// <param name="memberLevel"></param>
        /// <returns></returns>
        public static ProductPriceView GetProductPrice(int productId, int areaid, DateTime time, Dictionary <int, string> skuNames, Dictionary <int, int> units, MemberLevel memberLevel)
        {
            //获取时间
            DayOfWeek dayOfWeek = time.DayOfWeek;
            TimeSpan  timeSpan  = TimeSpan.Parse(time.GetDateTimeFormats('t')[0]);
            string    skun      = "," + string.Join(",", skuNames.Select(o => o.Value).ToList()) + ",";

            using (var uk = DalContext.UnitWork())
            {
                var skuPriceRep = uk.Get <SkuPrice>();
                var skuAreaRep  = uk.Get <SkuArea>();
                var skuTimeRep  = uk.Get <SkuTime>();

                #region 判断
                //判断地区是否服务
                int numArea = skuAreaRep.TableNoTracking.Count(o => o.ProductId == productId && o.AreaId == areaid);
                if (numArea == 0)
                {
                    throw new Exception("产品不在服务地区范围内");
                }
                //判断时间是否服务
                int numTime = skuTimeRep.TableNoTracking.Count(o => o.ProductId == productId && o.Week == dayOfWeek && o.StartTime <= timeSpan && o.EndTime >= timeSpan);
                if (numTime == 0)
                {
                    throw new Exception("产品不在服务时间范围内");
                }
                #endregion

                var priceTempletItemRep = uk.Get <PriceTempletItem>();
                var priceTempletRep     = uk.Get <PriceTemplet>();

                var data = (from s in skuPriceRep.TableNoTracking
                            join a in skuAreaRep.TableNoTracking on s.SkuAreaId equals a.Id
                            join t in skuTimeRep.TableNoTracking on s.SkuTimeId equals t.Id
                            where s.ProductId == productId && s.SkuValue == skun && a.AreaId == areaid && t.Week == dayOfWeek && t.StartTime <= timeSpan && t.EndTime >= timeSpan
                            select s).OrderBy(o => o.Id).FirstOrDefault();

                if (data == null)
                {
                    throw new Exception("查找不到价格,当前选择的产品组合不服务");
                }



                #region 查询产品价格模板是否存在价格 (isItem判断是否存在价格)
                //根据已获取的产品价格Id 去获取价格模板的价格
                //根据产品Id获取价格模板的价格
                List <PriceTempletItem> priceItems = priceTempletItemRep.TableNoTracking.Where(o => o.ProductId == productId && o.SkuPriceId.Contains("," + data.Id.ToString() + ",") && o.MemberLevel.Contains("," + memberLevel + ",")).ToList();
                List <int> priceTempletIds         = priceItems.Select(o => o.PriceTempletId).ToList();
                var        priceTemplets           = priceTempletRep.TableNoTracking.Where(o => priceTempletIds.Contains(o.Id));
                foreach (var priceItem in priceItems)
                {
                    List <int>     skuTimeIds    = priceItem.SkuTimeId.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(o => Convert.ToInt32(o)).ToList();
                    List <SkuTime> priceItemTime = skuTimeRep.TableNoTracking.Where(o => skuTimeIds.Contains(o.Id)).ToList();
                    var            priceTemplet  = priceTemplets.FirstOrDefault(o => o.Id == priceItem.PriceTempletId);
                    if (priceTemplet != null && priceTemplet.State == PriceTempletStateEnum.启用)
                    {
                        if (time >= priceTemplet.StartTime && time <= priceTemplet.EndTime)
                        {
                            foreach (var t in priceItemTime)
                            {
                                //判断sku时间
                                if (dayOfWeek == t.Week && timeSpan >= t.StartTime && timeSpan <= t.EndTime)
                                {
                                    data.Price           = priceItem.Price;
                                    data.AdditionalPrice = priceItem.AdditionalPrice;
                                }
                            }
                        }
                    }
                }

                #endregion
                ProductPriceView dataPrice = new ProductPriceView();
                dataPrice.NowPrice = data.Price;
                int unitsRide = 1;
                foreach (var u in units)
                {
                    unitsRide = unitsRide * u.Value;
                }
                dataPrice.TotalPrice = data.Price * unitsRide + data.AdditionalPrice;
                return(dataPrice);
            }
        }
Example #29
0
        /// <summary>
        /// 根据产品id 查询sku服务区域
        /// </summary>
        /// <param name="pid">产品id</param>
        /// <param name="areaid">区域id</param>
        /// <param name="time">时间</param>
        /// <param name="skuValue">sku值</param>
        /// <param name="memberLevel">会员等级</param>
        /// <returns></returns>
        public static SkuErrorViewModel GetSkuPriceYj(int pid, int areaid, DateTime time, string skuValue, MemberLevel memberLevel = MemberLevel.普通会员)
        {
            //获取时间
            DayOfWeek dayOfWeek = time.DayOfWeek;
            TimeSpan  timeSpan  = TimeSpan.Parse(time.GetDateTimeFormats('t')[0]);
            //获取价格 并验证是否存在
            var skuPrices = SkuPriceBll.GetInstance().Table().Where(o => o.ProductId == pid).ToList();

            if (skuPrices.Count() == 0)
            {
                return new SkuErrorViewModel {
                           SkuError = SkuErrorEnum.产品的价格不服务
                }
            }
            ;
            //获取区域 并验证是否存在
            var skuAreas = SkuAreaBll.GetInstance().Table().Where(o => o.ProductId == pid).ToList();

            if (skuAreas.Count() == 0)
            {
                return new SkuErrorViewModel {
                           SkuError = SkuErrorEnum.务地区不存在
                }
            }
            ;
            //获取时间 并验证是否存在
            var skuTimes = SkuTimeBll.GetInstance().Table().Where(o => o.ProductId == pid).ToList();

            if (skuTimes.Count() == 0)
            {
                return new SkuErrorViewModel {
                           SkuError = SkuErrorEnum.务时间不存在
                }
            }
            ;
            //获取并验证 产品价格 的 区域
            var query = (from s in skuPrices
                         join a in skuAreas on s.SkuAreaId equals a.Id
                         where a.AreaId == areaid
                         select s).OrderBy(o => o.Id).ToList();

            if (query.Count() == 0)
            {
                return new SkuErrorViewModel {
                           SkuError = SkuErrorEnum.务地区不存在
                }
            }
            ;
            //获取并验证 产品价格 的 时间
            query = (from s in query
                     join t in skuTimes on s.SkuTimeId equals t.Id
                     where t.Week == dayOfWeek && t.EndTime >= timeSpan && t.StartTime <= timeSpan
                     select s).OrderBy(o => o.Id).ToList();
            if (query.Count() == 0)
            {
                return new SkuErrorViewModel {
                           SkuError = SkuErrorEnum.务时间不存在
                }
            }
            ;
            query = query.Where(o => o.SkuValue == skuValue).OrderBy(o => o.Id).ToList();
            if (query.Count() == 0)
            {
                return new SkuErrorViewModel {
                           SkuError = SkuErrorEnum.Sku不存在
                }
            }
            ;
            if (!query.FirstOrDefault().IsEnable)
            {
                return new SkuErrorViewModel {
                           SkuError = SkuErrorEnum.产品的价格不服务
                }
            }
            ;
            var data = query.FirstOrDefault();

            string ProductCode = ProductBll.GetInstance().Get(pid).ProductCode;

            if (ProductCode.Trim() != "10000")
            {
                #region 查询产品价格模板是否存在价格 (isItem判断是否存在价格)
                //根据产品Id获取价格模板的价格
                var items = PriceTempletItemBll.GetInstance().Table().Where(o => o.ProductId == pid).ToList();

                // 根据已获取的产品价格Id 去获取价格模板的价格
                var priceItem = new List <PriceTempletItem>();
                //判断SkuPriceId
                if (items.Count() > 0)
                {
                    priceItem = items.Where(o => o.SkuPriceId.Contains("," + data.Id.ToString() + ",")).ToList();
                }
                //判断会员
                if (priceItem.Count() > 0)
                {
                    priceItem = priceItem.Where(o => o.MemberLevel.Contains("," + memberLevel + ",")).ToList();
                }
                //判断时间
                if (priceItem.Count() > 0)
                {
                    foreach (var i in priceItem)
                    {
                        var        skuTimeIdArray = i.SkuTimeId.Split(',');
                        List <int> skuTimeIds     = new List <int>();
                        for (int j = 0; j < skuTimeIdArray.Length; j++)
                        {
                            if (skuTimeIdArray[j] != "")
                            {
                                skuTimeIds.Add(int.Parse(skuTimeIdArray[j]));
                            }
                        }
                        var priceItemTime = skuTimes.Where(o => skuTimeIds.Contains(o.Id)).ToList();
                        var priceTemplet  = PriceTempletBll.GetInstance().Get(i.PriceTempletId);
                        if (priceTemplet != null && priceTemplet.State == PriceTempletStateEnum.启用)
                        {
                            //判断价格模板时间
                            if (time >= priceTemplet.StartTime && time <= priceTemplet.EndTime)
                            {
                                foreach (var t in priceItemTime)
                                {
                                    //判断sku时间
                                    if (dayOfWeek == t.Week && timeSpan >= t.StartTime && timeSpan <= t.EndTime)
                                    {
                                        data.Price           = i.Price;
                                        data.AdditionalPrice = i.AdditionalPrice;
                                    }
                                }
                            }
                        }
                    }
                }
                #endregion
            }
            return(new SkuErrorViewModel {
                SkuError = SkuErrorEnum.正常, SkuPriceView = data
            });
        }
Example #30
0
        public ActionResult PaidCreate([Bind(Include = "Id,DateTime,Account,Password,CompanyName,CompanyNumber,Principal,PrincipalJobTitle,CompanyPhone,CompanyUrl,ContactPersonJobTitle,EmployeeCount,CompanyType,Industry,Training,CompanyIntroduction,Business,CompanyPhoto,ContactPerson,ContactPersonPhone,ContactPersonEmail,Address,Extension,Fax,Demand,Subscription,EditUser,LastEditDateTime")] MbPaidViewModel mbPaidViewModel, HttpPostedFileBase companyPhone, MemberLevel applicationType)
        {
            if (ModelState.IsValid)
            {
                Member member = new Member();
                member.MemberLevel           = applicationType;
                member.ApplicationStatus     = ApplicationStatus.審核中;
                member.Account               = mbPaidViewModel.Account;
                member.PasswordSalt          = Utility.CreateSalt();
                member.Password              = Utility.GenerateHashWithSalt(mbPaidViewModel.Password, member.PasswordSalt);
                member.CompanyName           = mbPaidViewModel.CompanyName;
                member.CompanyNumber         = mbPaidViewModel.CompanyNumber;
                member.Principal             = mbPaidViewModel.Principal;
                member.PrincipalJobTitle     = mbPaidViewModel.PrincipalJobTitle;
                member.CompanyPhone          = mbPaidViewModel.CompanyPhone;
                member.CompanyUrl            = mbPaidViewModel.CompanyUrl;
                member.ContactPersonJobTitle = mbPaidViewModel.ContactPersonJobTitle;
                member.EmployeeCount         = Convert.ToInt32(mbPaidViewModel.EmployeeCount);
                member.ContactPersonEmail    = mbPaidViewModel.ContactPersonEmail;
                member.CompanyType           = mbPaidViewModel.CompanyType;
                member.Industry              = mbPaidViewModel.Industry;
                member.Training              = mbPaidViewModel.Training;
                member.CompanyIntroduction   = mbPaidViewModel.CompanyIntroduction;
                member.Business              = mbPaidViewModel.Business;
                member.CompanyPhone          = mbPaidViewModel.CompanyPhone;
                member.ContactPerson         = mbPaidViewModel.ContactPerson;
                member.ContactPersonPhone    = mbPaidViewModel.ContactPersonPhone;
                member.Address               = mbPaidViewModel.Address;
                member.Extension             = Convert.ToInt32(mbPaidViewModel.Extension);
                member.Fax              = mbPaidViewModel.Fax;
                member.Demand           = mbPaidViewModel.Demand;
                member.Subscription     = mbPaidViewModel.Subscription;
                member.DateTime         = DateTime.Now;
                member.LastEditDateTime = DateTime.Now;
                member.EditUser         = mbPaidViewModel.Account;
                if (companyPhone != null)
                {
                    if (companyPhone.ContentType.IndexOf("image", System.StringComparison.Ordinal) == -1)
                    {
                        ViewBag.message = "檔案類型錯誤";
                        return(View());
                    }
                    member.CompanyPhoto = Utility.SaveUpImage(companyPhone);
                    Utility.GenerateThumbnailImage(member.CompanyPhoto, companyPhone.InputStream, Server.MapPath("~/UpFile/Images"),
                                                   "s", 290, 217);
                }

                db.Members.Add(member);
                db.SaveChanges();
                return(RedirectToAction("Index", "Home"));
            }

            return(View(mbPaidViewModel));
        }