public CustomerSummary getDetailCustomer(int id)
        {
            using (var session = sessionFactory.OpenSession())
            {
                var query = session.Query <OrderDetail>();
                // var product = session.Get<Product>(id); //produsul de unde putem adauga informatii

                query = query.Where(a => a.Order.Customer.Id == id);
                if (query.Count() != 0)
                {
                    CustomerSummary customerSummary = new CustomerSummary();
                    customerSummary.Id                  = id;
                    customerSummary.OrdersCount         = query.Count();
                    customerSummary.TotalAmmountCharged = query.Sum(a => a.TotalPrice);
                    customerSummary.LastOrder           = query.Max(a => a.Order.OrderDate);
                    return(customerSummary);
                }
                else
                {
                    CustomerSummary customerSummary = new CustomerSummary();
                    customerSummary.OrdersCount         = query.Count();
                    customerSummary.TotalAmmountCharged = 0;
                    return(customerSummary);
                }
            }
        }
Пример #2
0
        public async Task CreateCustomerSummaryTest()
        {
            List <AccountSummary> accountSummaries = new List <AccountSummary>()
            {
                new AccountSummary()
                {
                    AccountReference = "11111111"
                },
                new AccountSummary()
                {
                    AccountReference = "22222222"
                },
                new AccountSummary()
                {
                    AccountReference = "33333333"
                },
                new AccountSummary()
                {
                    AccountReference = "44444444"
                },
                new AccountSummary()
                {
                    AccountReference = "55555555"
                },
            };

            Dictionary <string, Guid> surrogateKeysByLowellReference = new Dictionary <string, Guid>()
            {
                { "11111111", Guid.NewGuid() },
                { "22222222", Guid.NewGuid() },
                { "33333333", Guid.NewGuid() },
                { "44444444", Guid.NewGuid() },
                { "55555555", Guid.NewGuid() },
            };

            string lowellRef = "12345678";

            IncomeAndExpenditure incomeAndExpenditure = new IncomeAndExpenditure()
            {
                Created          = DateTime.Now,
                DisposableIncome = 999.99M
            };

            _budgetCalculatorService.Setup(x => x.GetSavedIncomeAndExpenditure(lowellRef))
            .Returns(Task.FromResult(incomeAndExpenditure));

            CustomerSummary expected = new CustomerSummary()
            {
                Accounts                       = accountSummaries,
                IncomeAndExpenditure           = incomeAndExpenditure,
                SurrogateKeysByLowellReference = surrogateKeysByLowellReference
            };

            CustomerSummary result = await _service.CreateCustomerSummary(accountSummaries, lowellRef, surrogateKeysByLowellReference);

            string expectedStr = JsonConvert.SerializeObject(expected);
            string resultStr   = JsonConvert.SerializeObject(result);

            Assert.AreEqual(expectedStr, resultStr);
        }
Пример #3
0
        public async Task <CustomerBetSummary> GetCustomerBetsSummary()
        {
            var customerbetsSummary = new CustomerBetSummary();

            customerbetsSummary.CustomerSummaries = new List <CustomerSummary>();
            var customers = await context.CustomerRepository.GetAll();

            var bets = await context.BetRepository.GetAll();

            var customerBets = (from customer in customers
                                join bet in bets
                                on customer.Id equals bet.CustomerId
                                group bet by bet.CustomerId into customerbetGroup
                                select customerbetGroup).ToDictionary(g => g.Key, g => new { BetCount = g.Count(), BetAmount = g.Sum(s => s.Stake) });
            decimal totalBets = 0;

            foreach (var customer in customers)
            {
                var customerSummary = new CustomerSummary();
                customerSummary.Id   = customer.Id;
                customerSummary.Name = customer.Name;
                if (customerBets.ContainsKey(customer.Id))
                {
                    customerSummary.BetCount      = customerBets[customer.Id].BetCount;
                    customerSummary.BetAmount     = customerBets[customer.Id].BetAmount;
                    customerSummary.RiskIndicator = customerSummary.BetAmount > RiskIndicatorThresold;
                    totalBets += customerSummary.BetAmount;
                }
                customerbetsSummary.CustomerSummaries.Add(customerSummary);
            }
            customerbetsSummary.TotalBetValue = totalBets;
            return(customerbetsSummary);
        }
Пример #4
0
		public IRestResponse PutCustomer( string href, CustomerSummary customer )
		{
			var request = new RestRequest( href, Method.PUT );
			request.RequestFormat = DataFormat.Json;
			request.AddBody( customer );
			return Execute( request );
		}
Пример #5
0
        public async Task <CustomerSummary[]> GetCustomerSummary()
        {
            var result = await _customerRepository.GetCustomerOrdersInformation();

            IList <CustomerSummary> retValue = new List <CustomerSummary>(result.Count);

            foreach (var customer in result)
            {
                var customerSummary = new CustomerSummary
                {
                    CustomerId  = customer.CustomerId,
                    CompanyName = customer.CompanyName,
                };

                foreach (var o in customer.Orders)
                {
                    customerSummary.OrderId      = o.OrderId;
                    customerSummary.MaxOrderDate = (DateTime)customer.Orders.Max(x => x.OrderDate);
                    customerSummary.MinOrderDate = (DateTime)customer.Orders.Min(x => x.OrderDate);
                    foreach (var od in o.OrderDetails)
                    {
                        customerSummary.ProductTotal = od.Quantity;
                        customerSummary.ProductName  = od.Product.ProductName;
                        retValue.Add((CustomerSummary)customerSummary.Clone());
                    }
                }
            }

            return(retValue.ToArray());
        }
Пример #6
0
		internal IRestResponse CreateCustomer( CustomerSummary customer )
		{
			var request = new RestRequest( GetApiPrefix( ApiType.Consume ) + "/customer", Method.POST );
			request.RequestFormat = DataFormat.Json;
			request.AddBody( customer );
			return Execute( request );
		}
Пример #7
0
 public IHttpActionResult UpdateCustomer([FromUri] int customerId, [FromBody] CustomerSummary customerSummary)
 {
     try
     {
         //Does customer belongs to the store
         //Is user valid
         if (!ModelState.IsValid)
         {
             return(BadRequest(ModelState));
         }
         if (!storeService.DoesStoreExists(customerSummary.StoreID))
         {
             return(BadRequest($"Store with id {customerSummary.StoreID} does not exists"));
         }
         if (!userSerivce.DoesUserExists(customerSummary.UserID))
         {
             return(BadRequest($"User with id {customerSummary.UserID} does not exists"));
         }
         return(Ok(customerService.EditCustomer(customerSummary, customerId)));
     }
     catch (InvalidOperationException)
     {
         return(BadRequest($"Customer with id {customerId} does not exists"));
     }
 }
Пример #8
0
 public CustomerSummary GetCustomerByEmail(string email)
 {
     try
     {
         var customerSummary = new CustomerSummary();
         using (var dataContext = new BrownBagDataEntities())
         {
             var customerData = dataContext.Customers.Where(a => a.Email == email).ToList();
             if (customerData != null && customerData.Count() > 0)
             {
                 var otherData = dataContext.CustomerAttributes.Where(a => a.Customer_Email == email).FirstOrDefault();
                 customerSummary.IsVerifiedCustomer    = customerData.Where(a => a.Email == email && a.Active == 1).Count() > 0 ? true : false;
                 customerSummary.CustomerName          = otherData.Customer_Name ?? "";
                 customerSummary.CustomerEmail         = otherData.Customer_Email ?? "";
                 customerSummary.CustomerContactNumber = otherData.Customer_Phone ?? "";
                 customerSummary.CustomerId            = customerData.FirstOrDefault().CustomerGuid.Value;
                 customerSummary.IsExclusiveUser       = (customerData.FirstOrDefault().IsSystemAccount ?? 0) > 0 ? true : false;
             }
             else
             {
                 return(null);
             }
         }
         return(customerSummary);
     }
     catch
     {
         throw;
     }
 }
Пример #9
0
        internal IRestResponse CreateCustomer(CustomerSummary customer)
        {
            var request = new RestRequest("Consume/customer", Method.POST);

            request.RequestFormat = DataFormat.Json;
            request.AddBody(customer);
            return(Execute(request));
        }
Пример #10
0
        public IRestResponse PutCustomer(string href, CustomerSummary customer)
        {
            var request = new RestRequest(href, Method.PUT);

            request.RequestFormat = DataFormat.Json;
            request.AddBody(customer);
            return(Execute(request));
        }
Пример #11
0
        public ApiResponse <dynamic> LogIn(LogInModel logInModel)
        {
            var deviceNo        = GetDeviceNo();
            var customerSummary = new CustomerSummary();
            var isLogin         = _customerServices.CustomerLogIn(deviceNo.Trim(), logInModel.Password.Trim(), logInModel.Email.Trim());

            customerSummary = _customerServices.GetCustomerSummaryByEmail(logInModel.Email.Trim());
            return(ApiUtility.ApiSuccess <dynamic>(new { IsLogin = isLogin, CustomerSummary = customerSummary }, isLogin ? "Loging successfully" : "Failed !!! Incorrect Email or Password"));
        }
Пример #12
0
        protected virtual void MapCustomer(CustomerSummary customer, CultureInfo cultureInfo, CartViewModel cartVm)
        {
            if (customer == null)
            {
                return;
            }

            var customerViewModel = ViewModelMapper.MapTo <CustomerSummaryViewModel>(customer, cultureInfo);

            cartVm.Customer = customerViewModel;
        }
        public Customer EditCustomer(CustomerSummary customerSummary, int customerId)
        {
            var customer = customerRepository.GetById(customerId);

            customer.Email            = customerSummary.Email;
            customer.StoreID          = customerSummary.StoreID;
            customer.CellPhone        = customerSummary.CellPhone;
            customer.PrimaryFirstName = customerSummary.PrimaryFirstName;
            customer.PrimaryLastName  = customerSummary.PrimaryLastName;
            customer.UserID           = customerSummary.UserID;
            return(customerRepository.ModifyCustomer(customer));
        }
        public Customer CreateCustomer(CustomerSummary customerSummary)
        {
            //todo mapper
            var customer = new Customer
            {
                Email            = customerSummary.Email,
                StoreID          = customerSummary.StoreID,
                CellPhone        = customerSummary.CellPhone,
                PrimaryFirstName = customerSummary.PrimaryFirstName,
                PrimaryLastName  = customerSummary.PrimaryLastName,
                UserID           = customerSummary.UserID
            };

            return(customerRepository.AddCustomer(customer));
        }
Пример #15
0
 public IHttpActionResult CreateCustomer([FromBody] CustomerSummary customerSummary)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     if (!storeService.DoesStoreExists(customerSummary.StoreID))
     {
         return(BadRequest($"Store with id {customerSummary.StoreID} does not exists"));
     }
     if (!userSerivce.DoesUserExists(customerSummary.UserID))
     {
         return(BadRequest($"User with id {customerSummary.UserID} does not exists"));
     }
     return(Ok(customerService.CreateCustomer(customerSummary)));
 }
Пример #16
0
        public CustomerSummary GetCustomerSummaryDetails(int seqPartyId)
        {
            CustomerSummary custSumm = new CustomerSummary();

            try
            {
                custSumm = _dbManager.GetCustomerSummaryDetails(seqPartyId);
            }
            catch (Exception exceptionToHandle)
            {
                ExceptionPolicy.HandleException(exceptionToHandle, "Policy");
                FaultDetail faultDetail = new FaultDetail
                {
                    Type      = exceptionToHandle.Message,
                    ErrorCode = 63873928
                };     //+ throw
                throw new FaultException <FaultDetail>(faultDetail, exceptionToHandle.Message);
            }

            return(custSumm);
        }
Пример #17
0
        public async Task <IActionResult> Index()
        {
            string caseflowUserId = GetCaseflowUserId();

            List <AccountSummary> accountSummaries = await _accountsService.GetAccounts(caseflowUserId);

            List <string> lowellReferences = accountSummaries.Select(x => x.AccountReference).ToList();
            IDictionary <string, Guid> surrogateKeysByLowellReference = ApplicationSessionState.AddLowellReferenceSurrogateKeys(lowellReferences);

            Guid?  lowellFinancialAccountSurrogateKey = null;
            string loggedInLowellRef = null;

            foreach (AccountSummary account in accountSummaries)
            {
                if (!account.AccountStatusIsWithSolicitors && lowellFinancialAccountSurrogateKey == null)
                {
                    lowellFinancialAccountSurrogateKey = surrogateKeysByLowellReference[account.AccountReference];
                    loggedInLowellRef = ApplicationSessionState.GetLowellReferenceFromSurrogate(lowellFinancialAccountSurrogateKey.Value);
                }
            }

            CustomerSummary customerSummary = await _accountsService.CreateCustomerSummary(accountSummaries, loggedInLowellRef, surrogateKeysByLowellReference);

            MyAccountsVm vm = _mapper.Map <CustomerSummary, MyAccountsVm>(customerSummary);

            if (TempData != null && TempData.ContainsKey("GTMEvents"))
            {
                vm.GtmEvents = JsonConvert.DeserializeObject <List <GtmEvent> >(TempData["GTMEvents"].ToString());
                TempData.Remove("GTMEvents");
            }

            _gtmService.RaiseMyAccountsPageViewedEvent(vm, LoggedInUserId);

            await _webActivityService.LogMyAccountsPageViewed(loggedInLowellRef, LoggedInUserId);

            return(View(vm));
        }
Пример #18
0
 public FinanceViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
 {
     this._regionManager = regionManager;
     _loadSearchCommand = new DelegateCommand<object>(NavigateToSearch, CanLoad);
     _searchCustNoCommand = new DelegateCommand<object>(SearchCustNo, CanLoad);
     _firstCommand = new DelegateCommand<object>(LoadFirstCustomerDetails, CanLoad);
     _lastCommand = new DelegateCommand<object>(LoadLastCustomerDetails, CanLoad);
     _nextCommand = new DelegateCommand<object>(LoadNextCustomerDetails, CanLoad);
     _previousCommand = new DelegateCommand<object>(LoadPreviousCustomerDetails, CanLoad);
     _saveCustDetailsCommand = new DelegateCommand<object>(SaveCustDetails, CanSave);
     CustomerSummaryDetails = new CustomerSummary();
     SelectedCustomer = new CustomerDetails();
     _eventAggregator = eventAggregator;
     SaveCustomerEvent saveCustEvent = _eventAggregator.GetEvent<SaveCustomerEvent>();
     saveCustEvent.Subscribe(SaveCustomerEventHandler);
     NextCustomerEvent nextCustEvent = _eventAggregator.GetEvent<NextCustomerEvent>();
     nextCustEvent.Subscribe(NextCustomerEventHandler);
     PreviousCustomerEvent previousCustEvent = _eventAggregator.GetEvent<PreviousCustomerEvent>();
     previousCustEvent.Subscribe(PreviousCustomerEventHandler);
     SearchCustomerEvent searchCustEvent = _eventAggregator.GetEvent<SearchCustomerEvent>();
     searchCustEvent.Subscribe(SearchCustomerEventHandler);
     FirstCustomerEvent firstCustEvent = _eventAggregator.GetEvent<FirstCustomerEvent>();
     firstCustEvent.Subscribe(FirstCustomerEventHandler);
     LastCustomerEvent lastCustEvent = _eventAggregator.GetEvent<LastCustomerEvent>();
     lastCustEvent.Subscribe(LastCustomerEventHandler);
     HeaderCustomerNoSelectedEvent customerNoSelectedEvent = _eventAggregator.GetEvent<HeaderCustomerNoSelectedEvent>();
     customerNoSelectedEvent.Subscribe(CustomerNoSelectedEventHandler);
     HeaderCustomerSelectedEvent customerSelectedEvent = _eventAggregator.GetEvent<HeaderCustomerSelectedEvent>();
     customerSelectedEvent.Subscribe(CustomerSelectedEventHandler);
 }
        public async Task IndexTest()
        {
            List <AccountSummary> accountSummaries = new List <AccountSummary>()
            {
                new AccountSummary()
                {
                    AccountReference = "11111111", OutstandingBalance = 111.11M
                },
                new AccountSummary()
                {
                    AccountReference = "22222222", OutstandingBalance = 222.22M
                },
                new AccountSummary()
                {
                    AccountReference = "33333333", OutstandingBalance = 333.33M
                },
                new AccountSummary()
                {
                    AccountReference = "44444444", OutstandingBalance = 444.44M
                },
                new AccountSummary()
                {
                    AccountReference = "55555555", OutstandingBalance = 555.55M
                }
            };

            Dictionary <string, Guid> surrogateKeysByLowellReference = new Dictionary <string, Guid>()
            {
                { "11111111", Guid.NewGuid() },
                { "22222222", Guid.NewGuid() },
                { "33333333", Guid.NewGuid() },
                { "44444444", Guid.NewGuid() },
                { "55555555", Guid.NewGuid() },
            };

            CustomerSummary customerSummary = new CustomerSummary()
            {
                Accounts = accountSummaries,
                SurrogateKeysByLowellReference = surrogateKeysByLowellReference,
                IncomeAndExpenditure           = new IncomeAndExpenditure()
            };

            MyAccountsVm myAccountsVm = new MyAccountsVm()
            {
                Accounts = new List <AccountSummaryVm>()
                {
                    new AccountSummaryVm()
                    {
                        AccountReferenceText = "11111111", OutstandingBalanceText = "£111.11"
                    },
                    new AccountSummaryVm()
                    {
                        AccountReferenceText = "22222222", OutstandingBalanceText = "£222.22"
                    },
                    new AccountSummaryVm()
                    {
                        AccountReferenceText = "33333333", OutstandingBalanceText = "£333.33"
                    },
                    new AccountSummaryVm()
                    {
                        AccountReferenceText = "44444444", OutstandingBalanceText = "£444.44"
                    },
                    new AccountSummaryVm()
                    {
                        AccountReferenceText = "55555555", OutstandingBalanceText = "£555.55"
                    },
                },
            };

            this._accountsService.Setup(x => x.GetAccounts(this._caseflowUserId)).Returns(Task.FromResult(accountSummaries));
            this._sessionState.Setup(x => x.AddLowellReferenceSurrogateKeys(It.Is <List <string> >(a =>
                                                                                                   a.Count == 5 && a[0] == "11111111" && a[1] == "22222222" && a[2] == "33333333" && a[3] == "44444444" && a[4] == "55555555")))
            .Returns(surrogateKeysByLowellReference);
            this._sessionState.Setup(x => x.GetLowellReferenceFromSurrogate(surrogateKeysByLowellReference["11111111"]))
            .Returns("11111111");
            this._accountsService.Setup(x => x.CreateCustomerSummary(accountSummaries, "11111111", surrogateKeysByLowellReference))
            .Returns(Task.FromResult(customerSummary));
            this._mapper.Setup(x => x.Map <CustomerSummary, MyAccountsVm>(customerSummary)).Returns(myAccountsVm);
            this._gtmService.Setup(x => x.RaiseMyAccountsPageViewedEvent(myAccountsVm, this._caseflowUserId)).Verifiable();
            this._webActivityService.Setup(x => x.LogMyAccountsPageViewed("11111111", this._caseflowUserId)).Returns(Task.CompletedTask);

            ViewResult result = (ViewResult)await this._controller.Index();

            Assert.AreSame(myAccountsVm, result.Model);

            this._gtmService.Verify(x => x.RaiseMyAccountsPageViewedEvent(myAccountsVm, this._caseflowUserId), Times.Once);
            this._webActivityService.Verify(x => x.LogMyAccountsPageViewed("11111111", this._caseflowUserId), Times.Once);

            this.VerifyAll();
        }
Пример #20
0
        public FinanceViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
        {
            this._regionManager = regionManager;

            _loadSearchCommand = new DelegateCommand<object>(NavigateToSearch, CanLoad);
            _searchCustNoCommand = new DelegateCommand<object>(SearchCustNo, CanLoad);
            _deleteCustomerCommand = new DelegateCommand<object>(DeleteCustomer, CanLoad);
            _firstCommand = new DelegateCommand<object>(LoadFirstCustomerDetails, CanLoad);
            _lastCommand = new DelegateCommand<object>(LoadLastCustomerDetails, CanLoad);
            _nextCommand = new DelegateCommand<object>(LoadNextCustomerDetails, CanLoad);
            _previousCommand = new DelegateCommand<object>(LoadPreviousCustomerDetails, CanLoad);
            _saveCustDetailsCommand = new DelegateCommand<object>(SaveCustDetails, CanSave);
            CustomerSummaryDetails = new CustomerSummary();
            SelectedCustomer = new CustomerDetails();
        }
Пример #21
0
        private decimal CheckAmountOwed(CustomerSummary customerSummary)
        {
            decimal amountOwed = customerSummary.TotalCredit - customerSummary.TotalRepaid;

            return(amountOwed);
        }