public static void AddPoints(Models.Customers.Customer customer, Models.Customers.LoyaltyPartner partner, long points, string comments, Models.Core.User user) { if (points > 0) { using (var session = DataConnector.NHibernateConnector.OpenSession()) { using (var dbTransaction = session.BeginTransaction()) { try { Models.Customers.LoyaltyTransaction transaction = new Models.Customers.LoyaltyTransaction(); transaction.TransactionDate = DateTime.Now; if (points > 0) { transaction.PointsDestination = partner; } if (points < 0) { transaction.PointsOrigin = partner; } transaction.Points = points; transaction.User = user; transaction.Comments = comments; transaction.Customer = customer; session.Save(transaction); var balanceObject = session.CreateCriteria(typeof(Models.Customers.LoyaltyBalance)) .Add(Expression.Eq("Customer", customer)) .Add(Expression.Eq("Partner", partner)) .UniqueResult <Models.Customers.LoyaltyBalance>(); if (balanceObject == null) { balanceObject = new Models.Customers.LoyaltyBalance(); balanceObject.Customer = customer; balanceObject.Partner = partner; balanceObject.Points = 0; } balanceObject.Points = balanceObject.Points + points; session.SaveOrUpdate(balanceObject); dbTransaction.Commit(); } catch (Exception ex) { dbTransaction.Rollback(); throw ex; } } } } else if (points < 0) { UsePoints(customer, partner, points, comments); } }
public static Models.Customers.Customer Put(Models.Customers.Customer customer) { if (string.IsNullOrEmpty(customer.LoyaltyCardNumber)) { customer.LoyaltyCardNumber = Loyalty.Card.GetNextLoyaltyCardNumber(true); } if (customer.Id == Guid.Empty) { FamiHub.Crud.Put(customer); if (CustomerDataPush.Becosoft.CustomerLinkActive) { CustomerDataPush.Becosoft.Create(customer); } } else { FamiHub.Crud.Put(customer); if (CustomerDataPush.Becosoft.CustomerLinkActive) { CustomerDataPush.Becosoft.Update(customer); } } return(customer); }
private static async Task <bool> CheckCurrentCustomers(Models.Customers.Customer customer) { using (var db = new DataAccess.CaraxEntitiy()) { return(await db.Customers.AnyAsync(q => q.Tc == customer.Tc || q.FirstPhone == customer.FirstPhone)); } }
public AddLoyaltyTransaction(CustomerForm parentCustomerForm, Models.Customers.Customer customer) { InitializeComponent(); _parentCustomerForm = parentCustomerForm; _customer = customer; LoadPartners(); }
public static void Create(Models.Customers.Customer customer) { BECO_Pro_FAM_CCLink.Customers customers = new BECO_Pro_FAM_CCLink.Customers(); long becosoftCustomerId = customers.Add(customer.LastName, customer.FirstName, customer.Street, customer.Number, customer.Box, String.Empty, 0, customer.Zip, customer.City, 0, customer.Phone, customer.MobilePhone, customer.LoyaltyCardNumber); General.ExternalReferences.PutReference("Customer:Becosoft", customer.Id, becosoftCustomerId); }
public static void Update(Models.Customers.Customer customer) { BECO_Pro_FAM_CCLink.Customers customers = new BECO_Pro_FAM_CCLink.Customers(); long becosoftCustomerId = Convert.ToInt64(General.ExternalReferences.GetReference("Customer:Becosoft", customer.Id)); customers.Update(becosoftCustomerId, customer.LastName, customer.FirstName, customer.Street, customer.Number, customer.Box, String.Empty, 0, customer.Zip, customer.City, 0, customer.Phone, customer.MobilePhone, customer.LoyaltyCardNumber); }
public UseLoyaltyPoints(CustomerForm parentCustomerForm, Models.Customers.Customer customer) { InitializeComponent(); _parentCustomerForm = parentCustomerForm; _customer = customer; LoadPartners(); }
public async Task <IActionResult> Create([FromBody] Models.Customers.Customer customer) { if (!await PublicAuthLogic.CheckAccessToken(GetAccessToken(), GetDepartmentCode())) { return(Unauthorized()); } var isSuccess = await CustomerLogic.Add(customer, GetDepartmentCode()); return(Ok(isSuccess)); }
public static IList <string> GeneratePhysicalCardNumbers(int numberOfCardsToCreate) { IList <string> cards = new List <string>(); for (int i = 0; i < numberOfCardsToCreate; i++) { Models.Customers.Customer customer = new Models.Customers.Customer(); customer.LoyaltyCardNumber = GetNextLoyaltyCardNumber(false); customer.FirstName = "Loyalty card (not activated) - " + customer.LoyaltyCardNumber; Customers.Crud.Put(customer); cards.Add(customer.LoyaltyCardNumber); } return(cards); }
public static long CheckBalance(Models.Customers.Customer customer) { var session = DataConnector.NHibernateConnector.OpenSession(); var bal = session.CreateCriteria(typeof(Models.Customers.LoyaltyBalance)) .Add(Expression.Eq("Customer", customer)) .List <Models.Customers.LoyaltyBalance>(); long totalBalance = 0; foreach (var balItem in bal) { totalBalance = totalBalance + balItem.Points; } return(totalBalance); }
public CustomerForm(FHFormTab caller, Models.Customers.Customer customer) { InitializeComponent(); _caller = caller; _customer = customer; if (_customer == null) { _customer = new Models.Customers.Customer(); } Common.ComboBoxFiller.CountryComboBox(cmbCountry); Common.ComboBoxFiller.SalutationComboBox(cmbSalutation); LoadData(); }
public static async Task <bool> Add(Guid token, Models.Customers.Customer customer) { var userInfo = AuthenticationLogic.CheckTokenInfo(token); customer.CreatedDateTime = DateTime.Now; customer.CreatedBy = userInfo.Username; customer.DepartmentCode = userInfo.DepartmentCode; customer.CompanyCode = userInfo.CompanyCode; using (var db = new DataAccess.CaraxEntitiy()) { if (!await CheckCurrentCustomers(customer)) { await db.Customers.AddAsync(customer); return(await db.SaveChangesAsync() > 0); } return(false); } }
public static void UsePoints(Models.Customers.Customer customer, Models.Customers.LoyaltyPartner partner, long points, string info) { using (var session = DataConnector.NHibernateConnector.OpenSession()) { try { var balanceObject = session.CreateCriteria(typeof(Models.Customers.LoyaltyBalance)) .Add(Expression.Eq("Customer", customer)) .Add(Expression.Eq("Partner", partner)) .UniqueResult <Models.Customers.LoyaltyBalance>(); if (balanceObject == null) { balanceObject = new Models.Customers.LoyaltyBalance(); balanceObject.Customer = customer; balanceObject.Partner = partner; balanceObject.Points = 0; session.Save(balanceObject); } if (balanceObject.Points < points) { TopUpPointsFromOtherPartner(customer, partner, points - balanceObject.Points); balanceObject = session.CreateCriteria(typeof(Models.Customers.LoyaltyBalance)) .Add(Expression.Eq("Customer", customer)) .Add(Expression.Eq("Partner", partner)) .UniqueResult <Models.Customers.LoyaltyBalance>(); } AddPoints(customer, partner, -points, info); } catch (Exception ex) { throw ex; } } }
public static async Task <bool> Update(Guid token, Models.Customers.Customer customer) { var userInfo = AuthenticationLogic.CheckTokenInfo(token); using (var db = new DataAccess.CaraxEntitiy()) { var cs = db.Customers.First(q => q.Id == customer.Id); cs.Tc = customer.Tc; cs.Address = customer.Address; cs.BirthOfDateTime = customer.BirthOfDateTime; cs.EMail = customer.EMail; cs.FirstPhone = customer.FirstPhone; cs.Gender = customer.Gender; cs.Name = customer.Name; cs.Nationality = customer.Nationality; cs.PassportSerialNumber = customer.PassportSerialNumber; cs.SecondPhone = customer.SecondPhone; cs.SerialNumberOfDrivingLicense = customer.SerialNumberOfDrivingLicense; cs.Surname = customer.Surname; cs.LicenseYear = customer.LicenseYear; cs.UpdatedDateTime = DateTime.Now; cs.UpdatedBy = userInfo.Username; cs.CompanyCode = userInfo.CompanyCode; cs.DepartmentCode = userInfo.DepartmentCode; cs.NameOfFather = customer.NameOfFather; cs.NameOfMother = customer.NameOfMother; cs.DrivingClasses = customer.DrivingClasses; cs.BloodGroup = customer.BloodGroup; cs.Profession = customer.Profession; cs.CityId = customer.CityId; cs.CountryCode = customer.CountryCode; cs.CountyId = customer.CountyId; cs.IsAdditionalDriver = customer.IsAdditionalDriver; db.Customers.Update(cs); return(await db.SaveChangesAsync() > 0); } }
// Public Customer Logic public static async Task <Models.Customers.Customer> Add(Models.Customers.Customer customer, string departmentCode) { customer.CreatedDateTime = DateTime.Now; customer.CreatedBy = departmentCode; customer.DepartmentCode = departmentCode; customer.CompanyCode = customer.CompanyCode; using (var db = new DataAccess.CaraxEntitiy()) { if (!await CheckCurrentCustomers(customer)) { await db.Customers.AddAsync(customer); await db.SaveChangesAsync(); return(customer); } var finded = db.Customers.First(q => q.Tc == customer.Tc || q.FirstPhone == customer.FirstPhone); return(finded); } }
public static void TopUpPointsFromOtherPartner(Models.Customers.Customer customer, Models.Customers.LoyaltyPartner partner, long topupPoints) { using (var session = DataConnector.NHibernateConnector.OpenSession()) { var partners = session.CreateCriteria(typeof(Models.Customers.LoyaltyPartner)) .Add(Expression.Not(Expression.Eq("Id", partner.Id))) .AddOrder(Order.Desc("ShortageFillerIndex")) .List <Models.Customers.LoyaltyPartner>(); var balanceObjects = new List <Models.Customers.LoyaltyBalance>(); foreach (var partnerObject in partners) { var balanceObject = session.CreateCriteria(typeof(Models.Customers.LoyaltyBalance)) .Add(Expression.Eq("Customer", customer)) .Add(Expression.Eq("Partner", partnerObject)) .UniqueResult <Models.Customers.LoyaltyBalance>(); balanceObjects.Add(balanceObject); } foreach (var balance in balanceObjects) { if (balance.Points > 0) { if (balance.Points >= topupPoints) { MovePoints(customer, balance.Partner, partner, topupPoints); topupPoints = 0; } else { MovePoints(customer, balance.Partner, partner, balance.Points); topupPoints = topupPoints - balance.Points; } } } } }
public CustomerChangedEmail(Models.Customers.Customer customer) { Customer = customer; }
public static void MovePoints(Models.Customers.Customer customer, Models.Customers.LoyaltyPartner fromPartner, Models.Customers.LoyaltyPartner toPartner, long points) { if (points != 0) { using (var session = DataConnector.NHibernateConnector.OpenSession()) { using (var dbTransaction = session.BeginTransaction()) { try { Models.Customers.LoyaltyTransaction transaction = new Models.Customers.LoyaltyTransaction(); transaction.TransactionDate = DateTime.Now; transaction.PointsOrigin = fromPartner; transaction.PointsDestination = toPartner; transaction.Points = points; transaction.Customer = customer; session.Save(transaction); // Add points to destination partner balance var balanceObjectDestination = session.CreateCriteria(typeof(Models.Customers.LoyaltyBalance)) .Add(Expression.Eq("Customer", customer)) .Add(Expression.Eq("Partner", toPartner)) .UniqueResult <Models.Customers.LoyaltyBalance>(); if (balanceObjectDestination == null) { balanceObjectDestination = new Models.Customers.LoyaltyBalance(); balanceObjectDestination.Customer = customer; balanceObjectDestination.Partner = toPartner; balanceObjectDestination.Points = 0; } balanceObjectDestination.Points = balanceObjectDestination.Points + points; session.SaveOrUpdate(balanceObjectDestination); // Take points from origin partner balance var balanceObjectOrigin = session.CreateCriteria(typeof(Models.Customers.LoyaltyBalance)) .Add(Expression.Eq("Customer", customer)) .Add(Expression.Eq("Partner", fromPartner)) .UniqueResult <Models.Customers.LoyaltyBalance>(); if (balanceObjectOrigin == null) { balanceObjectOrigin = new Models.Customers.LoyaltyBalance(); balanceObjectOrigin.Customer = customer; balanceObjectOrigin.Partner = fromPartner; balanceObjectOrigin.Points = 0; } balanceObjectOrigin.Points = balanceObjectOrigin.Points - points; session.SaveOrUpdate(balanceObjectOrigin); dbTransaction.Commit(); } catch (Exception ex) { dbTransaction.Rollback(); throw ex; } } } } }
public static IEnumerable <Models.Customers.LoyaltyTransaction> GetAllTransactions(Models.Customers.Customer customer) { var session = DataConnector.NHibernateConnector.OpenSession(); var trans = session.CreateCriteria(typeof(Models.Customers.LoyaltyTransaction)) .Add(Expression.Eq("Customer", customer)) .List <Models.Customers.LoyaltyTransaction>(); return(trans); }
public async Task <IActionResult> Update([FromBody] Models.Customers.Customer customer) { var isSuccess = await CustomerLogic.Update(GetToken(), customer); return(Ok(isSuccess)); }
public static void AddPoints(Models.Customers.Customer customer, Models.Customers.LoyaltyPartner partner, long points, Models.Core.User user) { AddPoints(customer, partner, points, null, user); }
public static void AddPoints(Models.Customers.Customer customer, Models.Customers.LoyaltyPartner partner, long points, string comments) { AddPoints(customer, partner, points, comments, null); }
public CustomerCreated(Models.Customers.Customer customer) { Customer = customer; }