public async override Task <CreateResult <TrackBillBO> > RunAsync(CreateTrackBillCmd process, CancellationToken cancellationToken = default) { try { var httpRequest = new HttpRequestMessage(HttpMethod.Post, $"{APIUriConstants.TrackBill}/Create") { Content = new StringContent(p_JsonSerializer.Serialize(process.Entry), Encoding.UTF8, "application/json") }; var httpResponse = await p_HttpClient.SendAsync(httpRequest, cancellationToken); string json = await httpResponse.Content.ReadAsStringAsync(); if (!httpResponse.IsSuccessStatusCode) { throw new LynxHttpException(httpResponse); } return(JsonSerializer.Deserialize <CreateResult <TrackBillBO> >(json)); } catch (Exception ex) { p_ExceptionHandler.LogError(ex, ex.Message); return(new CreateResult <TrackBillBO> { IsCreated = false, Error = ex }); } }
public override Task InitializeAsync(CreateTrackBillCmd tasq, CancellationToken cancellationToken) { return(p_TasqR.RunAsync(new GetTokenCmd(p_AppUser.UserID)) .ContinueWith(result => { p_HttpClient = p_ClientFactory.LynxApiClient(result.Result); })); }
public override Task InitializeAsync(CreateTrackBillCmd tasq, CancellationToken cancellationToken) { //var validationResult = tasq.Validator.ValidateUsing<TrackBillBOValidator>(tasq.Entry); //if (!validationResult.IsValid) //{ // throw new LynxException(new ValidationException(validationResult.Errors)); //} //return base.InitializeAsync(tasq, cancellationToken); throw new NotImplementedException(); }
public override Task <CreateResult <TrackBillBO> > RunAsync(CreateTrackBillCmd request, CancellationToken cancellationToken = default) { Task <CreateResult <TrackBillBO> > retVal = null; if (request.Entry == null) { return(Task.FromResult(new CreateResult <TrackBillBO> { IsCreated = false, Error = new LynxObjectNotFoundException <TrackBillBO>("Parameter is null") })); } var bill = DbContext.Bills.SingleOrDefault(a => a.ID == request.Entry.Bill.ID); var billProvider = DbContext.BillProviders .Include(a => a.N_ProviderType) .SingleOrDefault(a => a.BillID == request.Entry.Bill.ID && a.ProviderTypeID == request.Entry.BillProvider.ProviderTypeID); AssertObject.IsNotNull(bill); AssertObject.IsNotNull(billProvider); var newEntry = new TrackBill { BillID = request.Entry.Bill.ID, AccountNumber = request.Entry.AccountNumber, IsEnabled = true, LongDesc = request.Entry.LongDesc, ShortDesc = request.Entry.ShortDesc, ProviderTypeID = request.Entry.BillProvider.ProviderTypeID, UserID = AppUser.UserID }; var entityEntry = TrackBillDbSet.Add(newEntry); if (newEntry.ProviderTypeID == ProviderTypeConstants.Scheduled) { newEntry.N_ProviderTypeConfigScheduler = new ProviderTypeConfigScheduler { LongDesc = request.Entry.ProviderTypeConfigScheduler.LongDesc, Amount = request.Entry.ProviderTypeConfigScheduler.Amount, DayFrequency = request.Entry.ProviderTypeConfigScheduler.DayFrequency, StartDate = request.Entry.ProviderTypeConfigScheduler.StartDate, EndDate = request.Entry.ProviderTypeConfigScheduler.EndDate, Frequency = request.Entry.ProviderTypeConfigScheduler.Frequency, ShortDesc = request.Entry.ProviderTypeConfigScheduler.ShortDesc, SkipTimes = request.Entry.ProviderTypeConfigScheduler.SkipTimes }; if (newEntry.N_ProviderTypeConfigScheduler.DayFrequency != null && newEntry.N_ProviderTypeConfigScheduler.DayFrequency > 0) { var dates = GetDates ( newEntry.N_ProviderTypeConfigScheduler.DayFrequency.Value, newEntry.N_ProviderTypeConfigScheduler.StartDate, newEntry.N_ProviderTypeConfigScheduler.EndDate ); foreach (var date in dates) { newEntry.N_ProviderTypeConfigScheduler.N_ScheduleEntries.Add(new SchedulerEntry { Amount = request.Entry.ProviderTypeConfigScheduler.Amount, DueDate = date }); newEntry.N_UserBills.Add(new UserBill { Amount = request.Entry.ProviderTypeConfigScheduler.Amount, DueDate = date, Status = BillPaymentStatus.Pending }); } } } if (request.AutoSave) { return(BaseDbContext.SaveChangesAsync(cancellationToken) .ContinueWith(result => { if (result.IsFaulted) { return new CreateResult <TrackBillBO> { IsCreated = false, NewEntry = request.Entry, Error = new LynxException(result.Exception) }; } return new CreateResult <TrackBillBO> { IsCreated = true, NewEntry = Mapper.Map <TrackBillBO>(entityEntry.Entity) }; })); } else { var entry = Mapper.Map <TrackBillBO>(newEntry); entry.Bill = Mapper.Map <BillBO>(bill); entry.BillProvider = Mapper.Map <BillProviderBO>(billProvider); retVal = Task.FromResult(new CreateResult <TrackBillBO> { NewEntry = entry }); } return(retVal); }