예제 #1
0
        public async Task <ActionResult <CrmCustomer> > PostCrmCustomer(CrmCustomer crmCustomer)
        {
            _context.CrmCustomers.Add(crmCustomer);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetCrmCustomer", new { id = crmCustomer.Id }, crmCustomer));
        }
예제 #2
0
        public async Task <IActionResult> PutCrmCustomer(long id, CrmCustomer crmCustomer)
        {
            if (id != crmCustomer.Id)
            {
                return(BadRequest());
            }

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

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

            return(NoContent());
        }
예제 #3
0
        public CrmCustomer Post(CrmCustomer crmCustomer)
        {
            _context.CrmCustomers.Add(crmCustomer);
            _context.SaveChanges();

            return(crmCustomer);
        }
예제 #4
0
        public JsonResult SaveCustomer(CrmCustomerViewModel model)
        {
            var      currentUser = GetAuthenticatedUser();
            Response response;

            try
            {
                using (var db = new KiaGalleryContext())
                {
                    if (model.id != null && model.id > 0)
                    {
                        var customer = db.CrmCustomer.Single(x => x.Id == model.id);
                        customer.Id           = model.id;
                        customer.FullName     = model.fullName;
                        customer.FactorNumber = model.factorNumber;
                        customer.PhoneNumber  = model.phoneNumber;
                        if (User.IsInRole("branchCrm"))
                        {
                            customer.BuyType = BuyType.BuyAttendance;
                        }
                        if (User.IsInRole("officeCrm"))
                        {
                            customer.BuyType = BuyType.BuyOnline;
                        }
                        customer.BuyTypeOnline = model.buyTypeOnline;
                        customer.BuyTypeSubset = model.buyTypeSubset;
                        customer.Date          = DateUtility.GetDateTime(model.date);
                        customer.Score         = model.score;
                        customer.BranchId      = currentUser.BranchId;
                        customer.ModifyUserId  = GetAuthenticatedUserId();
                        customer.ModifyDate    = DateTime.Now;
                        customer.Ip            = Request.UserHostAddress;

                        var idList       = model.answerList.Where(x => model.id != null).Select(x => model.id).ToList();
                        var deletedItems = customer.CrmCustomerAnswerList.Where(x => !idList.Any(y => y == x.Id)).ToList();
                        if (deletedItems.Count > 0)
                        {
                            db.CrmCustomerAnswer.RemoveRange(deletedItems);
                        }
                        model.answerList.ForEach(x =>
                        {
                            var value = customer.CrmCustomerAnswerList.SingleOrDefault(y => y.CrmQuestionId == x.crmQuestionId);

                            if (value != null)
                            {
                                value.CrmQuestionId      = x.crmQuestionId;
                                value.CrmQuestionValueId = x.crmQuestionValueId;
                                value.DescriptiveAnswer  = x.descriptiveAnswer;
                                value.YesNoAnswer        = x.yesNoAnswer;
                                value.ModifyDate         = DateTime.Now;
                                value.ModifyUserId       = GetAuthenticatedUserId();
                                value.Ip = Request.UserHostAddress;
                            }
                            else
                            {
                                customer.CrmCustomerAnswerList.Add(new CrmCustomerAnswer()
                                {
                                    CrmQuestionId      = x.crmQuestionId,
                                    CrmQuestionValueId = x.crmQuestionValueId,
                                    DescriptiveAnswer  = x.descriptiveAnswer,
                                    YesNoAnswer        = x.yesNoAnswer,
                                    CreateUserId       = GetAuthenticatedUserId(),
                                    ModifyUserId       = GetAuthenticatedUserId(),
                                    CreateDate         = DateTime.Now,
                                    ModifyDate         = DateTime.Now,
                                    Ip = Request.UserHostAddress,
                                });
                            }
                        });
                    }
                    else
                    {
                        var item = new CrmCustomer()
                        {
                            FullName      = model.fullName,
                            FactorNumber  = model.factorNumber,
                            PhoneNumber   = model.phoneNumber,
                            BuyType       = model.buyType,
                            BuyTypeOnline = model.buyTypeOnline,
                            BuyTypeSubset = model.buyTypeSubset,
                            BranchId      = currentUser.BranchId,
                            Date          = DateUtility.GetDateTime(model.date),
                            Score         = model.score,
                            CreateUserId  = GetAuthenticatedUserId(),
                            ModifyUserId  = GetAuthenticatedUserId(),
                            CreateDate    = DateTime.Now,
                            ModifyDate    = DateTime.Now,
                            Ip            = Request.UserHostAddress,
                        };
                        if (User.IsInRole("branchCrm"))
                        {
                            item.BuyType = BuyType.BuyAttendance;
                        }
                        if (User.IsInRole("officeCrm"))
                        {
                            item.BuyType = BuyType.BuyOnline;
                        }
                        model.answerList.ForEach(x =>
                        {
                            item.CrmCustomerAnswerList.Add(new CrmCustomerAnswer()
                            {
                                CrmQuestionId      = x.crmQuestionId,
                                CrmQuestionValueId = x.crmQuestionValueId,
                                DescriptiveAnswer  = x.descriptiveAnswer,
                                YesNoAnswer        = x.yesNoAnswer,
                                CreateUserId       = GetAuthenticatedUserId(),
                                ModifyUserId       = GetAuthenticatedUserId(),
                                CreateDate         = DateTime.Now,
                                ModifyDate         = DateTime.Now,
                                Ip = Request.UserHostAddress,
                            });
                        });
                        db.CrmCustomer.Add(item);
                    }
                    db.SaveChanges();
                }
                response = new Response()
                {
                    status  = 200,
                    message = "ثبت اطلاعات با موفقیت انجام شد."
                };
            }
            catch (Exception ex)
            {
                response = Core.GetExceptionResponse(ex);
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }