private async Task <WrapperListCustomerVM> SetHistoryOverview(WrapperListCustomerVM vm, string FactoryId)
        {
            var data = new GetDataListHistory();

            //Task<WrapperCustomerHistory>[] listOftask = new Task<WrapperCustomerHistory>[vm.ListOfData.Count];
            WrapperCustomerHistory[] listOftask = new WrapperCustomerHistory[vm.ListOfData.Count];
            for (int i = 0; i < vm.ListOfData.Count; i++)
            {
                CustomerVM temp = vm.ListOfData.ElementAt(i);
                data.ClientId   = temp.CustomerId;
                data.PageNumber = -1;
                data.PageSize   = -1;
                data.FactoryId  = FactoryId;
                listOftask[i]   = await GetCustomerHistory(data);

                int len = listOftask[i].ListOfData.Count - 1;
                vm.ListOfData.ElementAt(i).PaidAmount       = listOftask[i].ListOfData[len].PaidAmount;
                vm.ListOfData.ElementAt(i).RecievableAmount = listOftask[i].ListOfData[len].RecievableAmount;
                vm.ListOfData.ElementAt(i).RecievedAmount   = listOftask[i].ListOfData[len].RecievedAmount;
                vm.ListOfData.ElementAt(i).PayableAmount    = listOftask[i].ListOfData[len].PayableAmount;
            }

            //            await Task.WhenAll(listOftask);

            //for (int i = 0; i < vm.ListOfData.Count; i++)
            //{
            //    //CustomerHistory te = GetCustomerHistoryOverview(listOftask[i].Result);
            //    CustomerHistory te = GetCustomerHistoryOverview(listOftask[i]);
            //    vm.ListOfData.ElementAt(i).PaidAmount = te.PaidAmount;
            //    vm.ListOfData.ElementAt(i).RecievableAmount = te.RecievableAmount;
            //    vm.ListOfData.ElementAt(i).RecievedAmount = te.RecievedAmount;
            //    vm.ListOfData.ElementAt(i).PayableAmount = te.PayableAmount;
            //}
            return(vm);
        }
        public async Task <ActionResult <WrapperListCustomerVM> > AddCustomer([FromBody] CustomerVM customerVM)
        {
            WrapperListCustomerVM result = new WrapperListCustomerVM();

            result = await _serviceWrapper.CustomerService.Add(customerVM);

            _logger.LogInfo("Customer Successfully Added");
            return(Ok(result));
        }
        public async Task <ActionResult <WrapperListCustomerVM> > UpdateCustomer(string id, [FromBody] CustomerVM customer)
        {
            WrapperListCustomerVM result = new WrapperListCustomerVM();

            result = await _serviceWrapper.CustomerService.Update(id, customer);

            _logger.LogInfo("Customer Successfully Updated");
            return(Ok(result));
        }
Example #4
0
        public async Task <ActionResult <WrapperListCustomerVM> > DeleteCustomer([FromBody] CustomerVM customerTemp)
        {
            WrapperListCustomerVM data = new WrapperListCustomerVM();

            data = await _serviceWrapper.CustomerService.Delete(customerTemp);

            _utilService.Log("Customer Successfully Deleted");
            return(data);
        }
        public async Task <WrapperListCustomerVM> Update(string id, CustomerVM updateCustomerViewModel)
        {
            if (id != updateCustomerViewModel.CustomerId)
            {
                new WrapperListCustomerVM();
            }

            Task <IEnumerable <Customer> > CustomersDB = _repositoryWrapper.Customer.FindByConditionAsync(x => x.Id == id && x.FactoryId == updateCustomerViewModel.FactoryId);
            //Task<IEnumerable<Address>> AddressesDB = _repositoryWrapper.Address.FindByConditionAsync(x => x.RelatedId == id && x.FactoryId == updateCustomerViewModel.FactoryId);
            //Task<IEnumerable<Phone>> PhonesDB = _repositoryWrapper.Phone.FindByConditionAsync(x => x.RelatedId == id && x.FactoryId == updateCustomerViewModel.FactoryId);

            await Task.WhenAll(CustomersDB);

            var CustomerUpdated = _utilService.GetMapper().Map <CustomerVM, Customer>(updateCustomerViewModel, CustomersDB.Result.ToList().FirstOrDefault());

            //var AddressUpdated = _mapper.Map<UpdateCustomerViewModel, Address>(updateCustomerViewModel, AddressesDB.Result.ToList().FirstOrDefault());
            //var PhoneUpdated = _mapper.Map<UpdateCustomerViewModel, Phone>(updateCustomerViewModel, PhonesDB.Result.ToList().FirstOrDefault());
            _repositoryWrapper.Customer.Update(CustomerUpdated);
            //_repositoryWrapper.Address.Update(AddressUpdated);
            //_repositoryWrapper.Phone.Update(PhoneUpdated);


            Task <int> t1 = _repositoryWrapper.Customer.SaveChangesAsync();
            //Task<int> t2 = _repositoryWrapper.Address.SaveChangesAsync();
            //Task<int> t3 = _repositoryWrapper.Phone.SaveChangesAsync();
            await Task.WhenAll(t1);

            this._utilService.Log("Successful In saving");



            var dataParam = new GetDataListVM()
            {
                FactoryId  = updateCustomerViewModel.FactoryId,
                PageNumber = 1,
                PageSize   = 10,
                TotalRows  = 0
            };
            WrapperListCustomerVM data = await GetListPaged(dataParam, true);

            return(data);
        }
        public async Task <WrapperListCustomerVM> Add(CustomerVM addCustomerViewModel)
        {
            var CustomerDT = _utilService.GetMapper().Map <CustomerVM, Customer>(addCustomerViewModel);

            //   var AddressDT = _mapper.Map<AddCustomerViewModel, Address>(addCustomerViewModel);
            //  var PhoneDT = _mapper.Map<AddCustomerViewModel, Phone>(addCustomerViewModel);

            //Task<string> cusUnique = _repositoryWrapper.Customer.GetUniqueId();
            //Task<string> addressUnique = _repositoryWrapper.Address.GetUniqueId();
            //Task<string> phoneUnique = _repositoryWrapper.Phone.GetUniqueId();

            //await Task.WhenAll(cusUnique, addressUnique, phoneUnique);

            //CustomerDT.UniqueId = cusUnique.Result;
            //AddressDT.UniqueId = addressUnique.Result;
            //PhoneDT.UniqueId = phoneUnique.Result;


            CustomerDT = _repositoryWrapper.Customer.Create(CustomerDT);
            //AddressDT.RelatedId = CustomerDT.Id;
            //AddressDT = _repositoryWrapper.Address.Create(AddressDT);
            //PhoneDT.RelatedId = CustomerDT.Id;
            //PhoneDT = _repositoryWrapper.Phone.Create(PhoneDT);
            Task <int> t1 = _repositoryWrapper.Customer.SaveChangesAsync();
            //Task<int> t2 = _repositoryWrapper.Address.SaveChangesAsync();
            //Task<int> t3 = _repositoryWrapper.Phone.SaveChangesAsync();
            //// await _repositoryWrapper.SaveAsync();
            await Task.WhenAll(t1);

            this._utilService.Log("Successful In saving");

            var dataParam = new GetDataListVM()
            {
                FactoryId  = addCustomerViewModel.FactoryId,
                PageNumber = 1,
                PageSize   = 10,
                TotalRows  = 0
            };
            WrapperListCustomerVM data = await GetListPaged(dataParam, true);

            return(data);
        }
        public async Task <WrapperListCustomerVM> Delete(CustomerVM customerTemp)
        {
            var customerTask = await _repositoryWrapper.Customer.FindByConditionAsync(x => x.Id == customerTemp.CustomerId && x.FactoryId == customerTemp.FactoryId);

            var customer = customerTask.ToList().FirstOrDefault();

            if (customer == null)
            {
                return(new WrapperListCustomerVM());
            }
            _repositoryWrapper.Customer.Delete(customer);
            await _repositoryWrapper.Customer.SaveChangesAsync();

            var dataParam = new GetDataListVM()
            {
                FactoryId  = customerTemp.FactoryId,
                PageNumber = 1,
                PageSize   = 10,
                TotalRows  = 0
            };
            WrapperListCustomerVM data = await GetListPaged(dataParam, true);

            return(data);
        }
        public async Task <WrapperListCustomerVM> GetListPaged(GetDataListVM dataListVM, bool withHistory)
        {
            IEnumerable <Customer> custListTask = await _repositoryWrapper.Customer.FindByConditionAsync(x => x.FactoryId == dataListVM.FactoryId);

            //Task<IEnumerable<Address>> addressListTask = _repositoryWrapper.Address.FindByConditionAsync(x => x.FactoryId == dataListVM.FactoryId);
            //Task<IEnumerable<Phone>> phoneListTask = _repositoryWrapper.Phone.FindByConditionAsync(x => x.FactoryId == dataListVM.FactoryId);
            long noOfRecordTask = await _repositoryWrapper.Customer.NumOfRecord();

            // await Task.WhenAll(custListTask);
            // await Task.WhenAll(noOfRecordTask);

            List <Customer> custList = custListTask.ToList().OrderByDescending(x => x.UpdatedDateTime).ToList();//.Skip((dataListVM.PageNumber - 1) * dataListVM.PageSize).Take(dataListVM.PageSize).OrderByDescending(x => x.CreatedDateTime).ToList();
            //List<Address> addressList = addressListTask.Result.ToList();
            //List<Phone> phoneList = phoneListTask.Result.ToList();

            List <CustomerVM> outputList = new List <CustomerVM>();

            outputList = _utilService.GetMapper().Map <List <Customer>, List <CustomerVM> >(custList);
            if (!string.IsNullOrEmpty(dataListVM.GlobalFilter) && !string.IsNullOrWhiteSpace(dataListVM.GlobalFilter))
            {
                outputList = outputList.Where(output =>
                                              output.AlternateCellNo != null ? output.AlternateCellNo.Contains(dataListVM.GlobalFilter, StringComparison.OrdinalIgnoreCase) : false ||
                                              output.CellNo != null ? output.CellNo.Contains(dataListVM.GlobalFilter, StringComparison.OrdinalIgnoreCase) : false ||
                                              output.Email != null ? output.Email.Contains(dataListVM.GlobalFilter, StringComparison.OrdinalIgnoreCase) : false ||
                                              output.Name != null ? output.Name.Contains(dataListVM.GlobalFilter, StringComparison.OrdinalIgnoreCase) : false ||
                                              output.PermanentAddress != null ? output.PermanentAddress.Contains(dataListVM.GlobalFilter, StringComparison.OrdinalIgnoreCase) : false ||
                                              output.PresentAddress != null ? output.PresentAddress.Contains(dataListVM.GlobalFilter, StringComparison.OrdinalIgnoreCase) : false).ToList();
            }
            //for (int i = 0; i < custList.Count(); i++)
            //{
            //    var tempCustomer = custList.ElementAt(i);
            //    //var tempAddress = addressList.Where(x => x.RelatedId == tempCustomer.Id).FirstOrDefault();
            //    //var tempPhone = phoneList.Where(x => x.RelatedId == tempCustomer.Id).FirstOrDefault();
            //    var output = new ListCustomerVM();
            //    output = _mapper.Map<Customer, ListCustomerVM>(tempCustomer, output);
            //    //output = _mapper.Map<Address, ListCustomerVM>(tempAddress, output);
            //    //output = _mapper.Map<Phone, ListCustomerVM>(tempPhone, output);
            //    if (dataListVM.GlobalFilter != null)
            //    {
            //        if (output.AlternateCellNo.Contains(dataListVM.GlobalFilter, StringComparison.OrdinalIgnoreCase)
            //            || output.CellNo.Contains(dataListVM.GlobalFilter, StringComparison.OrdinalIgnoreCase)
            //            || output.Email.Contains(dataListVM.GlobalFilter, StringComparison.OrdinalIgnoreCase)
            //            || output.Name.Contains(dataListVM.GlobalFilter, StringComparison.OrdinalIgnoreCase)
            //             || output.PermanentAddress.Contains(dataListVM.GlobalFilter, StringComparison.OrdinalIgnoreCase)
            //              || output.PresentAddress.Contains(dataListVM.GlobalFilter, StringComparison.OrdinalIgnoreCase))
            //        {
            //            outputList.Add(output);
            //        }
            //    }
            //    else
            //    {
            //        outputList.Add(output);
            //    }

            //}
            outputList = outputList.Skip((dataListVM.PageNumber - 1) * dataListVM.PageSize).Take(dataListVM.PageSize).ToList();
            var data = new WrapperListCustomerVM();

            data.ListOfData   = outputList;
            data.TotalRecords = noOfRecordTask;
            if (withHistory)
            {
                data = await SetHistoryOverview(data, dataListVM.FactoryId);
            }

            return(data);
        }