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);
        }
Пример #2
0
        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());
            }
        }