private async Task <ParticipationReference> GetReferenceAsync(int applicationId, int batchId, UserInfo userInfo) { var batch = await _appDbContext.Batches.FirstOrDefaultAsync(k => k.Id == batchId); var programme = await _appDbContext.Programmes.FirstOrDefaultAsync(k => k.Id == batch.ProgrammeId); var ref1 = batch.ReferenceNumber; var ref2 = applicationId.ToString("D3"); var ref3 = new Random().Next(0, 99999).ToString("D4"); var refNumber = $"{ref1}-{ref3}"; var parti = new ParticipationReference() { ReferenceNumber = refNumber, ApplicationID = applicationId, CreatedBy = userInfo.Email, ModifiedBy = userInfo.Email, Created = DateTime.Now, Modified = DateTime.Now, ProfileID = userInfo.Id, InitiativeTypeID = 98001 }; await _appDbContext.ParticipationReferences.AddAsync(parti); await _appDbContext.SaveChangesAsync(); return(parti); }
private async Task <ParticipationReference> GetReferenceAsync(int initiativeProfileId, int initiativeId, UserInfo userInfo) { try { var initiative = await _appDbContext.Initiatives.FirstOrDefaultAsync(k => k.Id == initiativeId); var ref1 = initiative?.ReferenceNumber?.ToString(); var ref2 = initiativeProfileId.ToString("D3"); var ref3 = new Random().Next(0, 99999).ToString("D4"); var refNumber = $"{ref1}-{ref3}"; var data = _appDbContext.ParticipationReferences.FirstOrDefault(a => a.InitiativeParticipationID == initiativeProfileId && a.ProfileID == userInfo.Id); if (data != null) { return(data); } var parti = new ParticipationReference() { ReferenceNumber = refNumber, InitiativeParticipationID = initiativeProfileId, CreatedBy = userInfo.Email, ModifiedBy = userInfo.Email, Created = DateTime.Now, Modified = DateTime.Now, ProfileID = userInfo.Id, InitiativeTypeID = 98001 }; await _appDbContext.ParticipationReferences.AddAsync(parti); await _appDbContext.SaveChangesAsync(); return(parti); } catch (Exception e) { logger.Error(e); return(new ParticipationReference()); } }