public bool SaveRequest4Payment(Model.PaymentRequest entity, EntityCollection <PaymentRequestBudgetLine> collection) { using (var context = new SCMSEntities()) { using (TransactionScope scope = new TransactionScope()) { try { context.PaymentRequests.Add(entity); //if (context.SaveChanges() > 0) //{ foreach (PaymentRequestBudgetLine item in collection) { context.PaymentRequestBudgetLines.Add(item); if (!(context.SaveChanges() > 0)) { scope.Complete(); return(false); } } //Send notification to Finance notificationService.SendToAppropriateApprover(NotificationHelper.rfpCode, NotificationHelper.reviewCode, entity.Id); scope.Complete(); return(true); //} //else { scope.Dispose(); return false; } } catch (Exception ex) { scope.Dispose(); throw new Exception(ex.Message); } } } }
public string GenerateUniquNumber(CountryProgramme cp) { string code = "RFP/DRC/" + cp.Country.ShortName + "/"; string refNumber = ""; long count = 1; using (var dbContext = new SCMSEntities()) { var total = dbContext.PaymentRequests.Where(p => p.CountryProgrammeId == cp.Id && p.IsSubmitted == true).Count(); count = total; Model.PaymentRequest m = null; do { count++; if (count < 100000) { if (count < 10) { refNumber = code + "0000" + count; } if (count < 100 & count >= 10) { refNumber = code + "000" + count; } if (count < 1000 & count >= 100) { refNumber = code + "00" + count; } if (count < 10000 & count >= 1000) { refNumber = code + "0" + count; } if (count < 100000 && count >= 10000) { refNumber = code + count; } } m = dbContext.PaymentRequests.FirstOrDefault(p => p.RefNumber == refNumber); } while (m != null); return(refNumber); } }