public int AddBillingAddress(AddressViewModel obj)
        {
            var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <AddressViewModel, MstBillingAddressModel>();
            });
            IMapper mapper = config.CreateMapper();
            MstBillingAddressModel objBA = new MstBillingAddressModel();
            var newObj = mapper.Map(obj, objBA);

            newObj.createdOn = DateTime.Now;
            newObj.isActive  = true;
            uow.MstBillingAddresses.Add(newObj);
            return(uow.Save());
        }
 public int UpdateOrder(int OrderID, int CustomerID, string Remark, int LoginID)
 {
     orderDetailModel objOD = this.uow.Orders.Queryable().Where(x => x.orderDetailsId == OrderID).FirstOrDefault();
     MstBillingAddressModel objBA = this.uow.MstBillingAddresses.Queryable().Where(x => x.loginID == CustomerID).FirstOrDefault();
     MstShippingAddressModel objSA = this.uow.MstShippingAddresses.Queryable().Where(x => x.loginID == CustomerID).FirstOrDefault();
     if (objOD != null && objBA != null && objSA != null)
     {
         objOD.billingId = objBA.billingId;
         objOD.shippingId = objSA.shippingId;
         objOD.customerId = CustomerID;
         objOD.remark = Remark;
         objOD.modifiedBy = LoginID;
         objOD.modifiedOn = DateTime.Now;
         this.uow.Orders.Edit(objOD);
         return this.uow.Save();
     }
     return 0;
 }
        public int UpdateBillingAddress(AddressViewModel obj)
        {
            int rowCount = 0;
            var oldObj   = uow.MstBillingAddresses.GetAll().Where(x => x.billingId == obj.billingId).FirstOrDefault();
            var config   = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <AddressViewModel, MstBillingAddressModel>()
                .ForMember(x => x.createdOn, opt => opt.Ignore());
            });
            IMapper mapper = config.CreateMapper();
            MstBillingAddressModel objOld = GetBillingAddressByID(obj.billingId);

            if (objOld != null)
            {
                var newObj = mapper.Map(obj, objOld);
                newObj.updatedOn = DateTime.Now;
                rowCount         = uow.Save();
            }
            return(rowCount);
        }
        public bool RegisterUser(RegistrationViewModel obj, Roles roles, bool SelfRegistration = true)
        {
            if (CheckEmailID(obj.emailId) == false)
            {
                throw new UserDefinedException(string.Format(StringResource.AlreadyTaken, "email"));
            }
            if (obj.createdBy == 0 && SelfRegistration == true)
            {
                if (VerifyOtp(obj.emailId, obj.otp) == false)
                {
                    throw new UserDefinedException(string.Format(StringResource.Invalid, "OTP"));
                }
            }
            if (CheckUsername(obj.username) == false)
            {
                throw new UserDefinedException(string.Format(StringResource.AlreadyTaken, "User Name"));
            }

            LoginDetailModel        objLD = new LoginDetailModel();
            MstBillingAddressModel  objBA = new MstBillingAddressModel();
            MstShippingAddressModel objSA = new MstShippingAddressModel();
            UserDetailModel         objUD = new UserDetailModel();

            this.uow.BeginTransaction();
            try
            {
                int   RoleID         = 0;
                Array enumValueArray = Enum.GetValues(typeof(Roles));
                foreach (int enumValue in enumValueArray)
                {
                    if (roles.ToString() == Enum.GetName(typeof(Roles), enumValue))
                    {
                        RoleID = enumValue;
                    }
                }
                // LoginDetailModel ----Start----
                objLD.username       = obj.username;
                objLD.password       = obj.password;
                objLD.roleID         = RoleID;
                objLD.parentLoginID  = 0;
                objLD.userStatus     = obj.userStatus.HasValue ? obj.userStatus.Value : 0;
                objLD.locationIDs    = "";
                objLD.loggedInStatus = false;
                objLD.loginAttempted = 0;
                objLD.createdOn      = DateTime.Now;
                objLD.lastLoginDate  = null;
                objLD.isApproved     = SelfRegistration == true ? 0 : 1;
                objLD.approvedBy     = SelfRegistration == true ? 0 : obj.LoginID;
                objLD.approvedOn     = SelfRegistration == true ? null : (DateTime?)DateTime.Now;
                // LoginDetailModel ----End----
                this.uow.LoginDetails.Add(objLD);
                if (this.uow.Save() > 0)
                {
                    // MstBillingAddressModel ----Start----
                    objSA.companyName = objBA.companyName = obj.companyName;
                    objSA.address01   = objBA.address01 = obj.address01;
                    objSA.address02   = objBA.address02 = "";
                    objSA.countryID   = objBA.countryID = obj.countryID;
                    objSA.stateID     = objBA.stateID = obj.stateID;
                    objSA.cityName    = objBA.cityName = obj.cityName;
                    objSA.zipCode     = objBA.zipCode = obj.ZIP;
                    objSA.firstName   = objBA.firstName = obj.firstName;
                    objSA.lastName    = objBA.lastName = obj.lastName;
                    objSA.createdOn   = objBA.createdOn = DateTime.Now;
                    objSA.loginID     = objBA.loginID = objLD.loginID;
                    objSA.isActive    = objBA.isActive = true;
                    objSA.isDefault   = objBA.isDefault = true;
                    // MstBillingAddressModel ----End----

                    this.uow.MstBillingAddresses.Add(objBA);
                    this.uow.MstShippingAddresses.Add(objSA);

                    // UserDetailModel ----Start----
                    objUD.accNumber     = obj.accNumber;
                    objUD.tinNo         = obj.tinNo;
                    objUD.pan           = obj.pan;
                    objUD.gstNo         = obj.gstNo;
                    objUD.bankName      = obj.bankName;
                    objUD.branchName    = obj.branchName;
                    objUD.branchAddress = obj.branchAddress;
                    objUD.kycDocName    = obj.kycDocName;
                    objUD.kycDocNo      = obj.kycDocNo;

                    //objUD.isManufacturer = obj.isManufacturer;
                    //objUD.isWholeSaler = obj.isWholeSaler;
                    //objUD.isRetailer = obj.isRetailer;
                    //objUD.isOther = obj.isOther;
                    objUD.TypeId          = obj.TypeId;
                    objUD.dateOfDocExpiry = obj.dateOfDocExpiry;

                    objUD.otherType           = obj.otherType;
                    objUD.phoneCode01         = obj.phoneCode01;
                    objUD.phone01             = obj.phone01;
                    objUD.fax01               = obj.Fax;
                    objUD.mobile              = obj.Mobile;
                    objUD.mobile              = obj.Mobile;
                    objUD.dateOfEstablishment = obj.dateOfEstablishment;
                    objUD.emailId             = obj.emailId;
                    objUD.website             = obj.website;
                    objUD.kycDocFile          = obj.kycDocFile;
                    objUD.createdOn           = DateTime.Now;
                    objUD.createdDevice       = "Web";
                    objUD.createdIP           = "";
                    objUD.loginID             = objLD.loginID;

                    // UserDetailModel ----Start----
                    this.uow.UserDetails.Add(objUD);
                }
                //UserKycDocDetailsModel obkKyc = this.uow.UserKycDocDetails.Queryable().Where(x => x.LoginId == obj.DocRandomID).FirstOrDefault();
                //if (obkKyc != null)
                //{
                //    obkKyc.LoginId = Convert.ToInt32(obj.DocRandomID);
                //    this.uow.UserKycDocDetails.Edit(obkKyc);
                //    this.uow.Save();
                //}

                int RowCount = uow.Save();

                DataContext entity = new DataContext();
                (from u in entity.UserKycDocDetails
                 select u).Where(x => x.LoginId == obj.DocRandomID).ToList().ForEach(x => x.LoginId = Convert.ToString(objLD.loginID));
                entity.SaveChanges();

                if (RowCount >= 2)
                {
                    this.uow.CommitTransaction();
                    return(true);
                }
            }
            catch (Exception ex)
            {
                this.uow.RollbackTransaction();
                throw ex;
            }
            return(false);
        }
        public bool UpdateRegisterUser(RegistrationViewModel obj, Roles roles, int UserID)
        {
            if (obj.LoginID == 0)
            {
                throw new UserDefinedException(string.Format(StringResource.DoesNotExist, "LoginID"));
            }
            this.uow.BeginTransaction();
            UserDetailModel        objUD = uow.UserDetails.Queryable().Where(x => x.loginID == obj.LoginID).FirstOrDefault();
            LoginDetailModel       objLD = uow.LoginDetails.Queryable().Where(x => x.loginID == obj.LoginID).FirstOrDefault();
            MstBillingAddressModel objBA = uow.MstBillingAddresses.Queryable().Where(x => x.loginID == obj.LoginID).FirstOrDefault();

            if (objUD != null && objLD != null && objBA != null)
            {
                if (CheckEmailID(obj.emailId, objUD.userDetailId) == false)
                {
                    throw new UserDefinedException(string.Format(StringResource.AlreadyTaken, "email"));
                }

                if (CheckUsername(obj.emailId, obj.LoginID) == false)
                {
                    throw new UserDefinedException(string.Format(StringResource.AlreadyTaken, "User Name"));
                }

                //MstBillingAddressModel objBA = new MstBillingAddressModel();
                //MstShippingAddressModel objSA = new MstShippingAddressModel();

                try
                {
                    int   RoleID         = 0;
                    Array enumValueArray = Enum.GetValues(typeof(Roles));
                    foreach (int enumValue in enumValueArray)
                    {
                        if (roles.ToString() == Enum.GetName(typeof(Roles), enumValue))
                        {
                            RoleID = enumValue;
                        }
                    }
                    // LoginDetailModel ----Start----
                    objLD.username = obj.username;
                    if (obj.password != "" && obj.password != null)
                    {
                        objLD.password = obj.password;
                    }
                    objLD.roleID       = RoleID;
                    objLD.modifiedDate = DateTime.Now;
                    objLD.modifiedBy   = UserID;
                    objLD.userStatus   = obj.userStatus.HasValue ? obj.userStatus.Value : 0;
                    // LoginDetailModel ----End----
                    this.uow.LoginDetails.Edit(objLD);

                    // MstBillingAddressModel ----Start----
                    objBA.companyName = obj.companyName;
                    objBA.address01   = obj.address01;
                    objBA.address02   = "";
                    objBA.countryID   = obj.countryID;
                    objBA.stateID     = obj.stateID;
                    objBA.cityName    = obj.cityName;
                    objBA.zipCode     = obj.ZIP;
                    objBA.firstName   = obj.firstName;
                    objBA.lastName    = obj.lastName;
                    objBA.updatedOn   = DateTime.Now;
                    objBA.loginID     = objLD.loginID;
                    // MstBillingAddressModel ----End----

                    this.uow.MstBillingAddresses.Edit(objBA);

                    // UserDetailModel ----Start----
                    objUD.accNumber = obj.accNumber;
                    //objUD.tinNo = obj.tinNo;
                    //objUD.pan = obj.pan;
                    //objUD.gstNo = obj.gstNo;
                    objUD.bankName      = obj.bankName;
                    objUD.branchName    = obj.branchName;
                    objUD.branchAddress = obj.branchAddress;
                    //objUD.kycDocName = obj.kycDocName;
                    //objUD.kycDocNo = obj.kycDocNo;
                    //objUD.isManufacturer = obj.isManufacturer;
                    //objUD.isWholeSaler = obj.isWholeSaler;
                    //objUD.isRetailer = obj.isRetailer;
                    objUD.isOther     = obj.isOther;
                    objUD.otherType   = obj.otherType;
                    objUD.phoneCode01 = obj.phoneCode01;
                    objUD.phone01     = obj.phone01;
                    objUD.fax01       = obj.Fax;
                    objUD.mobile      = obj.Mobile;
                    //objUD.dateOfEstablishment = obj.dateOfEstablishment;
                    objUD.emailId = obj.emailId;
                    //objUD.website = obj.website;
                    //objUD.kycDocFile = obj.kycDocFile;
                    //objUD.updatedOn = DateTime.Now;
                    //objUD.loginID = objLD.loginID;

                    // UserDetailModel ----Start----
                    this.uow.UserDetails.Edit(objUD);

                    int RowCount = uow.Save();
                    if (RowCount >= 2)
                    {
                        this.uow.CommitTransaction();
                        return(true);
                    }
                }
                catch (Exception ex)
                {
                    this.uow.RollbackTransaction();
                    throw ex;
                }
            }
            return(false);
        }