/// <summary> /// To Get DepositLogs depending on DepositeDate and ClientCode /// </summary> /// <param name="clientCode"></param> /// <param name="depositDate"></param> /// <returns></returns> public DepositLogClientDataViewModel GetDepositLogsOfClientForDate(string clientCode, DateTime depositDate) { DepositLogClientDataViewModel depositLogClientData = new DepositLogClientDataViewModel(); try { List <BusinessModel.BusinessModels.ClientPayer> payerDetails = _depositLogResposiotory.GetDepositLogsForClientDate(clientCode, depositDate); depositLogClientData.ClientCode = clientCode; depositLogClientData.Date = depositDate.Date; depositLogClientData.Payers = new List <PayerDataViewModel>(); if (payerDetails?.Count > 0) { foreach (BusinessModel.BusinessModels.ClientPayer payer in payerDetails) { PayerDataViewModel clientPayer = new PayerDataViewModel(); clientPayer.PayerCode = payer.Payer?.PayerCode; clientPayer.PayerName = payer.Payer?.PayerName; clientPayer.Amount = payer.DepositLog?.First().Amount; depositLogClientData.Payers.Add(clientPayer); } } else { depositLogClientData.Payers = GetPayersForClient(clientCode); } depositLogClientData.Total = depositLogClientData.Payers.Sum(c => c.Amount); depositLogClientData.IsMonthClosed = _depositLogResposiotory.IsMonthOfAYearClosedForAClient(clientCode, depositDate.Month, depositDate.Year); return(depositLogClientData); } catch (Exception ex) { _logger.Log(ex, LogLevel.Error, ex.Message); return(depositLogClientData); } }
/// <summary> /// To Save Deposite logs into Database /// </summary> /// <param name="clientDepositLog"></param> public ValidationViewModel SaveClientDepositLogData(DepositLogClientDataViewModel clientDepositLog) { ValidationViewModel response = new ValidationViewModel(); BusinessResponse businessResponse = new BusinessResponse(); try { List <BusinessModel.BusinessModels.ClientPayer> clientPayers = new List <ClientPayer>(); BusinessModel.BusinessModels.DepositLog depositLogDTO = new BusinessModel.BusinessModels.DepositLog(); foreach (PayerDataViewModel payer in clientDepositLog.Payers) { BusinessModel.BusinessModels.ClientPayer clientPayer = new ClientPayer(); clientPayer.Payer = new BusinessModel.BusinessModels.Payer(); clientPayer.Payer.PayerCode = payer.PayerCode; clientPayer.Payer.PayerName = payer.PayerName; clientPayer.DepositLog = new List <BusinessModel.BusinessModels.DepositLog>(); clientPayer.DepositLog.Add(new BusinessModel.BusinessModels.DepositLog { DepositDate = clientDepositLog.Date, Amount = payer.Amount }); clientPayers.Add(clientPayer); } businessResponse.IsSuccess = _depositLogResposiotory.SaveDepositLogs(clientPayers, clientDepositLog.ClientCode, clientDepositLog.SavedLastNumberOfBusinessDays); if (businessResponse.IsSuccess) { businessResponse.Messages.Add(new MessageDTO() { Message = BusinessConstants.DEPOSIT_LOG_SAVE_SUCCESS, MessageType = Infrastructure.Enums.MessageType.Info }); } else { businessResponse.Messages.Add(new MessageDTO() { Message = BusinessConstants.DEPOSIT_LOG_SAVE_FAIL, MessageType = Infrastructure.Enums.MessageType.Error }); } return(businessResponse.ToValidationViewModel()); } catch (Exception ex) { _logger.Log(ex, LogLevel.Error, ex.Message); businessResponse.IsSuccess = false; businessResponse.IsExceptionOccured = true; businessResponse.Messages.Add(new MessageDTO() { Message = BusinessConstants.DEPOSIT_LOG_SAVE_FAIL, MessageType = Infrastructure.Enums.MessageType.Error }); return(businessResponse.ToValidationViewModel()); } }
/// <summary> /// To get ClientPayers associated to Client /// </summary> /// <param name="clientCode"></param> /// <returns></returns> public DepositLogClientDataViewModel GetPayerDetailsForClient(string clientCode) { DepositLogClientDataViewModel clientPayers = new DepositLogClientDataViewModel(); try { clientPayers.ClientCode = clientCode; clientPayers.Payers = GetPayersForClient(clientCode); } catch (Exception ex) { _logger.Log(ex, LogLevel.Error, ex.Message); } return(clientPayers); }
public ValidationViewModel SaveClientDepositLogs([FromBody] DepositLogClientDataViewModel depositeLogData) { return(_depositLogBusiness.SaveClientDepositLogData(depositeLogData)); }