예제 #1
0
        public static void UpdatePromotion(EditPromotionDTO promotion)
        {
            try
            {
                var con = new SqlConnection(GetConnection());
                var cmd = new SqlCommand
                {
                    Connection  = con,
                    CommandType = CommandType.Text,
                    CommandText =
                        "Update [dbo].[promotion] SET rate = @rate, price = @price, hidden=@hidden WHERE codeId = @codeId"
                };
                cmd.Parameters.AddWithValue("@rate", promotion.Rate);
                cmd.Parameters.AddWithValue("@price", promotion.Price);
                cmd.Parameters.AddWithValue("@hidden", promotion.Hidden);
                cmd.Parameters.AddWithValue("@codeId", promotion.CodeId);

                if (con.State != ConnectionState.Closed)
                {
                    return;
                }
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
            }
            catch (SqlException ex)
            {
                var msg = "Update errors";
                msg += ex.Message;
                throw new Exception(msg);
            }
        }
예제 #2
0
        public static void AddPromotion(EditPromotionDTO promotion)
        {
            try
            {
                var con = new SqlConnection(GetConnection());
                var cmd = new SqlCommand
                {
                    Connection  = con,
                    CommandType = CommandType.Text,
                    CommandText =
                        "INSERT INTO [dbo].[promotion](codeID,rate, price, hidden) " +
                        "VALUES (@codeId,@rate, @price, @hidden)"
                };
                cmd.Parameters.Clear();

                cmd.Parameters.AddWithValue("@codeId", promotion.CodeId);
                cmd.Parameters.AddWithValue("@rate", promotion.Rate);
                cmd.Parameters.AddWithValue("@price", promotion.Price);
                cmd.Parameters.AddWithValue("@hidden", promotion.Hidden);

                if (con.State != ConnectionState.Closed)
                {
                    return;
                }
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
            }
            catch (SqlException ex)
            {
                var msg = "Insert errors";
                msg += ex.Message;
                throw new Exception(msg);
            }
        }
예제 #3
0
        public List <string> Validate(EditPromotionDTO promotion, out List <string> invalidIds)
        {
            var validationMessage = new List <string>();
            var validationId      = new List <string>();

            if (promotion.IsCreating && string.IsNullOrEmpty(promotion.CodeId))
            {
                validationMessage.Add("Code is empty.");
                validationId.Add("PromotionCodeId");
            }

            if (promotion.Price == default(double) && promotion.Rate == default(int))
            {
                validationMessage.Add("Price and Rate are both empty. At least one must be set.");
                validationId.Add("PromotionPrice");
                validationId.Add("PromotionRate");
            }

            if (promotion.Price != default(double) && promotion.Rate != default(int))
            {
                validationMessage.Add("Price and Rate cannot be set at the same time.");
                validationId.Add("PromotionPrice");
                validationId.Add("PromotionRate");
            }

            invalidIds = validationId;
            return(validationMessage);
        }
예제 #4
0
        public ActionResult GetPromotionDetail(string promotionCode)
        {
            var promotion       = PromoManagement.GetAllPromotionList().Single(x => x.CodeId == promotionCode);
            var promotionDetail = new EditPromotionDTO
            {
                CodeId     = promotion.CodeId,
                Price      = promotion.Price,
                Rate       = promotion.Rate,
                IsCreating = false,
                Hidden     = promotion.Hidden
            };

            return(Json(new { promotionDetail }, JsonRequestBehavior.AllowGet));
        }
예제 #5
0
        public ActionResult CreateUpdatePromotion(EditPromotionDTO dto)
        {
            if (dto == null)
            {
                throw new NullReferenceException("DTO cannot be null");
            }
            var validationIds     = new List <string>();
            var validationMessage = Validate(dto, out validationIds);

            if (!validationMessage.Any())
            {
                if (dto.IsCreating)
                {
                    PromoManagement.AddPromotion(dto);
                }
                else
                {
                    PromoManagement.UpdatePromotion(dto);
                }

                var promotions = PromoManagement.GetAllPromotionList();

                var totalProductPage = (int)Math.Ceiling(((double)promotions.Count() / (double)pageSize));
                return(Json(new
                {
                    promotions = ApplyPaging(promotions, 1),
                    passed = !validationMessage.Any(),
                    validationIds,
                    validationMessage = string.Join("</br>", validationMessage),
                    totalProductPage
                }));
            }

            return(Json(new
            {
                passed = !validationMessage.Any(),
                validationIds,
                validationMessage = string.Join("</br>", validationMessage)
            }));
        }