/// <summary> /// This function validates invoice create request /// </summary> /// <param name="invoice">All paramters that are related to invoice</param> /// <returns>InvoiceResponse containing error messages if any</returns> private InvoiceResponse IsValidCreateInvoiceLinkRequest(CreateInvoiceRequest invoice) { List <string> listOfErrors = new List <string>(); if (invoice.Amount <= 0) { listOfErrors.Add("Amount must be greater than zero"); } if (invoice.Date == DateTime.MinValue) { listOfErrors.Add("Date is missing"); } if (string.IsNullOrEmpty(invoice.Email) && invoice.NotificationMode.Equals((int)NotificationMode.Email)) { listOfErrors.Add("Email is missing"); } if (!string.IsNullOrEmpty(invoice.Email)) { MailAddress mailAddress = new MailAddress(invoice.Email); if (mailAddress.Address != invoice.Email && invoice.NotificationMode.Equals((int)NotificationMode.Email)) { listOfErrors.Add("Email address is invalid"); } } if (string.IsNullOrEmpty(invoice.Msisdn) && invoice.NotificationMode.Equals((int)NotificationMode.SMS)) { listOfErrors.Add("Msisdn is missing"); } if (invoice.NotificationMode.Equals((int)NotificationMode.Online) && string.IsNullOrEmpty(invoice.Msisdn) && string.IsNullOrEmpty(invoice.Email)) { listOfErrors.Add("Msisdn or Email is missing"); } if (string.IsNullOrEmpty(invoice.CustomerName)) { listOfErrors.Add("CustomerName is missing"); } if (invoice.NotificationMode.Equals((int)NotificationMode.Online)) { if (string.IsNullOrEmpty(invoice.SuccessUrl)) { listOfErrors.Add("SuccessUrl is missing"); } if (string.IsNullOrEmpty(invoice.ErrorUrl)) { listOfErrors.Add("ErrorUrl is missing"); } } InvoiceResponse validationResponse = new InvoiceResponse() { ErrorCode = 0 }; if (listOfErrors.Count != 0) { validationResponse.ErrorCode = 102; // missing parameters error code validationResponse.ErrorMessage = string.Join(" | ", listOfErrors.ToArray()); } return(validationResponse); }