static async Task PopuplateUserResponse(BitcornContext dbContext, SubRequest subRequest, SubscriptionResponse output, User user) { var selectableUser = new SelectableUser(user); var columns = await UserReflection.GetColumns(dbContext, subRequest.Columns, new int[] { selectableUser.UserId }); if (columns != null && columns.Count > 0) { foreach (var column in columns.First().Value) { selectableUser.Add(column.Key, column.Value); } } output.User = selectableUser; }
public async Task <ActionResult <SubResponse> > PostSub([FromBody] SubRequest request) { var validate = subValidator.Validate(request); if (!validate.IsValid) { return(BadRequest(new ErrorResponse("BadRequest", "Unable to process request", "400", validate.Errors))); } var parameters = mapper.Map <SubParams>(request); var operation = GetOp <SubParams, IntResult>(nameof(SubService)); var result = await operation.Execute(parameters); logger.LogInformation($"PostSub executed"); var resultResponse = this.mapper.Map <SubResponse>(result); return(resultResponse); }
public void Sub(int[] numbers, string url) { string jsonRequest = ""; Console.WriteLine($"Operacion: {string.Join("-", numbers)}"); logger.Info(url); // Connects to the server and sends the request HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "POST"; req.ContentType = "application/json"; req.Headers.Add("X_Evi_Tracking_Id", "Test"); using (StreamWriter sw = new StreamWriter(req.GetRequestStream())) { SubRequest sub = new SubRequest(); sub.Nums = numbers; jsonRequest = JsonConvert.SerializeObject(sub); sw.WriteLine(jsonRequest); sw.Close(); } // Get the response string resp; HttpWebResponse Response = (HttpWebResponse)req.GetResponse(); using (StreamReader sr = new StreamReader(Response.GetResponseStream(), Encoding.UTF8)) { //response = JsonConvert.DeserializeObject<AddResponse>(sr.ReadToEnd()); resp = sr.ReadToEnd(); sr.Close(); Response.Close(); } Console.WriteLine("The server responds: "); Console.WriteLine(resp); //Console.WriteLine($"{response.Operation} = {response.Total}"); logger.Info($"The server responds: {resp}"); logger.Info("-------------------------------------------------------------"); }
public static SubResult Sub(SubRequest subRequest, string trackingID) { SubResult subResult = new SubResult(); try { subResult.Difference = subRequest.Minuend - subRequest.Subtrahend; string calculation = subRequest.Minuend.ToString() + "-" + subRequest.Subtrahend.ToString(); //Si viene el header x-trackingID diferente de 0 se guarda el log if (Convert.ToInt32(trackingID) != 0) { SaveLog(Convert.ToInt32(trackingID), "Sub", calculation, subResult.Difference); } } catch (Exception ex) { subResult.Difference = -1; } return(subResult); }
public static string testSub() { // Request Test Object SubRequest request = new SubRequest(); request.Minuend = 2; request.Subtrahend = 7; // Response Test Object SubResponse response; // Calling service... HttpWebRequest Req = (HttpWebRequest)WebRequest.Create(String.Format("{0}{1}", ENDPOINT, "sub")); Req.Method = "POST"; Req.ContentType = "application/json"; Req.Headers.Add("X-Evi-Tracking-Id", "12345678"); using (var streamWriter = new StreamWriter(Req.GetRequestStream())) { string json = JsonConvert.SerializeObject(request); streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); } // Getting response... HttpWebResponse Resp = (HttpWebResponse)Req.GetResponse(); StreamReader sr = new StreamReader(Resp.GetResponseStream(), Encoding.UTF8); string s = sr.ReadToEnd(); sr.Close(); Resp.Close(); response = JsonConvert.DeserializeObject <SubResponse>(s); return(response.Difference.ToString()); }
public async Task Sub_GetsCorrectResponse() { var minuend = 10; var subtrahend = 5; var expected = minuend - subtrahend; var request = new SubRequest { Minuend = minuend, Subtrahend = subtrahend }; var client = _factory.CreateClient(); var response = await client.PostJsonAsync("/calculator/sub", request); using (new AssertionScope()) { response.StatusCode.Should().Be(HttpStatusCode.OK); var responseObject = await response.GetResponse <SubResponse>(); responseObject.Difference.Should().Equals(expected); } }
public IActionResult Sub([FromBody] SubRequest subRequest) { Log.Debug("Sub"); if (!ModelState.IsValid) { return(GetError(StatusCodes.Status400BadRequest)); } try { var result = _mathService.Sub(subRequest.Minuend, subRequest.Sustraend, Request.GetHeader(CalculatorServiceConstants.EvilTrackingHeader)); if (result.HasValue) { return(Ok(new SubResponse(result.Value))); } } catch (Exception ex) { Log.Error(ex.Message); } return(GetError(StatusCodes.Status500InternalServerError)); }
public async Task <IActionResult> Sub([FromBody] SubRequest request) { var response = await _mediator.Send(request); return(Ok(response)); }
public static SubResult Sub(SubRequest subRequest, string tracking_ID) { return(CalculatorDL.Sub(subRequest, tracking_ID)); }
static async Task Main(string[] args) { var continueOp = true; var justFirstTime = true; int?trackId = null; var request = default(object); while (continueOp) { if (justFirstTime) { PrintInfo(); justFirstTime = false; } var trackIdText = trackId.HasValue ? $"(trackId = {trackId})" : ""; Write($"operation {trackIdText} -> "); var op = ReadLine(); switch (op.ToUpper()) { case "R": WriteLine("Reset traking Id", ConsoleColor.Cyan); trackId = null; break; case "U": WriteLine("Using a traking Id", ConsoleColor.Cyan); if (!TryInputInt("trackId", out int trackIdPased)) { break; } if (trackIdPased <= 0) { WriteLine("The trackId should be positive"); break; } trackId = trackIdPased; break; case "D": WriteLine("Divide", ConsoleColor.Cyan); if (!TryInputInt("dividend", out int dividend)) { break; } if (!TryInputInt("divisor", out int divisor)) { break; } request = new DivRequest() { Dividend = dividend, Divisor = divisor }; await PostAndPrint("div", request, trackId); break; case "M": WriteLine("Multiplication", ConsoleColor.Cyan); if (!TryInputListInt(out List <int> toSend)) { break; } request = new MultRequest() { Factors = toSend }; await PostAndPrint("mult", request, trackId); break; case "Q": WriteLine("Square", ConsoleColor.Cyan); if (!TryInputInt("number", out int number)) { break; } request = new SqrtRequest() { Number = number }; await PostAndPrint("sqrt", request, trackId); break; case "S": WriteLine("Substract", ConsoleColor.Cyan); if (!TryInputInt("minuend", out int minuend)) { break; } if (!TryInputInt("subtrahend", out int subtrahend)) { break; } request = new SubRequest() { Minuend = minuend, Subtrahend = subtrahend }; await PostAndPrint("sub", request, trackId); break; case "A": WriteLine("Sum", ConsoleColor.Cyan); if (!TryInputListInt(out toSend)) { break; } request = new SumRequest() { Addends = toSend }; await PostAndPrint("add", request, trackId); break; case "G": WriteLine("Query", ConsoleColor.Cyan); if (!TryInputInt("trackId", out int trackIdToSend)) { break; } request = new QueryRequest() { Id = trackIdToSend }; await PostAndPrint("query", request, trackId); break; case "O": WriteLine("Operations", ConsoleColor.Cyan); await GetAndPrint("operations"); break; case "E": continueOp = false; break; case "I": PrintInfo(); break; default: WriteLine("Invalid operation!", ConsoleColor.Red); break; } } WriteLine("Bye :)"); }
internal static QuotaRequestDetailsData DeserializeQuotaRequestDetailsData(JsonElement element) { ResourceIdentifier id = default; string name = default; ResourceType type = default; SystemData systemData = default; Optional <QuotaRequestState> provisioningState = default; Optional <string> message = default; Optional <DateTimeOffset> requestSubmitTime = default; Optional <IReadOnlyList <SubRequest> > value = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("id")) { id = new ResourceIdentifier(property.Value.GetString()); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = new ResourceType(property.Value.GetString()); continue; } if (property.NameEquals("systemData")) { systemData = JsonSerializer.Deserialize <SystemData>(property.Value.ToString()); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("provisioningState")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } provisioningState = new QuotaRequestState(property0.Value.GetString()); continue; } if (property0.NameEquals("message")) { message = property0.Value.GetString(); continue; } if (property0.NameEquals("requestSubmitTime")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } requestSubmitTime = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("value")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <SubRequest> array = new List <SubRequest>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(SubRequest.DeserializeSubRequest(item)); } value = array; continue; } } continue; } } return(new QuotaRequestDetailsData(id, name, type, systemData, Optional.ToNullable(provisioningState), message.Value, Optional.ToNullable(requestSubmitTime), Optional.ToList(value))); }
public void SendEmails() { var tag = CurrentDatabase.FetchOrCreateTag(Util.SessionId, Util.UserPeopleId, CurrentDatabase.NextTagId); CurrentDatabase.ExecuteCommand("delete TagPerson where Id = {0}", tag.Id); CurrentDatabase.TagAll(pids, tag); var dt = new DateTime(ticks); foreach (var id in pids) { var vr = new SubRequest { AttendId = attend.AttendId, RequestorId = person.PeopleId, Requested = dt, SubstituteId = id, }; attend.SubRequests.Add(vr); } CurrentDatabase.SubmitChanges(); var qb = CurrentDatabase.ScratchPadCondition(); qb.Reset(); qb.AddNewClause(QueryType.HasMyTag, CompareType.Equal, $"{tag.Id},temp"); attend.Commitment = CmsData.Codes.AttendCommitmentCode.FindSub; qb.Save(CurrentDatabase); var rurl = CurrentDatabase.ServerLink($"/OnlineReg/VolSubReport/{attend.AttendId}/{person.PeopleId}/{dt.Ticks}"); var reportlink = $@"<a href=""{rurl}"">Substitute Status Report</a>"; var list = CurrentDatabase.PeopleFromPidString(org.NotifyIds).ToList(); //list.Insert(0, person); CurrentDatabase.Email(person.FromEmail, list, "Volunteer Substitute Commitment for " + org.OrganizationName, $@" <p>{person.Name} has requested a substitute on {attend.MeetingDate:MMM d} at {attend.MeetingDate:h:mm tt}.</p> <blockquote> {reportlink} </blockquote>"); // Email subs var m = new MassEmailer(qb.Id); m.Subject = subject; m.Body = message; m.FromName = person.Name; m.FromAddress = person.FromEmail; var eqid = m.CreateQueue(transactional: true).Id; string host = CurrentDatabase.Host; // save these from HttpContext to set again inside thread local storage var useremail = Util.UserEmail; var isinroleemailtest = HttpContextFactory.Current.User.IsInRole("EmailTest"); Log("Send Emails"); HostingEnvironment.QueueBackgroundWorkItem(ct => { try { var db = CMSDataContext.Create(host); // set these again inside thread local storage Util.UserEmail = useremail; Util.IsInRoleEmailTest = isinroleemailtest; db.SendPeopleEmail(eqid); } catch (Exception ex) { Log("Email Error"); var ex2 = new Exception("Emailing error for queueid " + eqid, ex); ErrorLog errorLog = ErrorLog.GetDefault(null); errorLog.Log(new Error(ex2)); var db = CMSDataContext.Create(host); // set these again inside thread local storage Util.UserEmail = useremail; Util.IsInRoleEmailTest = isinroleemailtest; var equeue = db.EmailQueues.Single(ee => ee.Id == eqid); equeue.Error = ex.Message.Truncate(200); db.SubmitChanges(); } }); }
static void Main(string[] args) { int userInput = 0; do { userInput = DisplayMenu(); Console.WriteLine(); switch (userInput) { case 1: Console.WriteLine("Suma"); Console.WriteLine("Ingrese los numeros separados por coma."); string[] numbersAdd = Console.ReadLine().Split(','); Console.WriteLine("Ingrese id Tracking-Id (opcional):"); string EviTrackingIDAdd = Console.ReadLine(); AddRequest addRequest = new AddRequest(); try { addRequest.Addends = Array.ConvertAll(numbersAdd, s => int.Parse(s)); Calculator.Add(addRequest, EviTrackingIDAdd); } catch (Exception) { Console.WriteLine("Hubo un error al ingresar los numeros"); } break; case 2: Console.WriteLine("Resta de 2 numeros"); Console.WriteLine("Ingrese primer numero(Minuendo):"); int Minuendo = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Ingrese segundo numero(Sustraendo):"); int Sustraendo = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Ingrese id Tracking-Id (opcional):"); string EviTrackingID = Console.ReadLine(); SubRequest subRequest = new SubRequest(); subRequest.Minuend = Minuendo; subRequest.Subtrahend = Sustraendo; Calculator.Sub(subRequest, EviTrackingID); break; case 3: Console.WriteLine("Multiplicación"); Console.WriteLine("Ingrese los numeros separados por coma."); string[] numbers = Console.ReadLine().Split(','); Console.WriteLine("Ingrese id Tracking-Id (opcional):"); string EviTrackingIDMult = Console.ReadLine(); MultRequest MultRequest = new MultRequest(); try { MultRequest.Factors = Array.ConvertAll(numbers, s => int.Parse(s)); Calculator.Mult(MultRequest, EviTrackingIDMult); } catch (Exception ex) { Console.WriteLine("Hubo un error al ingresar los numeros"); } break; case 4: Console.WriteLine("División"); Console.WriteLine("Ingrese primer numero(Dividendo):"); int Dividendo = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Ingrese segundo numero(Divisor):"); int Divisor = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Ingrese id Tracking-Id (opcional):"); string EviTrackingIDDiv = Console.ReadLine(); DivtRequest divtRequest = new DivtRequest(); divtRequest.Dividend = Dividendo; divtRequest.Divisor = Divisor; Calculator.Div(divtRequest, EviTrackingIDDiv); break; case 5: Console.WriteLine("Raiz Cuadrada"); Console.WriteLine("Ingrese el numero:"); int number = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Ingrese id Tracking-Id (opcional):"); string EviTrackingIDSqrt = Console.ReadLine(); SqrtRequest sqrtRequest = new SqrtRequest(); sqrtRequest.Number = number; Calculator.Sqrt(sqrtRequest, EviTrackingIDSqrt); break; case 6: Console.WriteLine("Consultar Logs"); Console.WriteLine("Ingrese el id."); int id; try { id = Convert.ToInt32(Console.ReadLine()); Calculator.Query(id); } catch (Exception ex) { Console.WriteLine("Debe ingresar un valor valido: " + ex); } break; default: break; } } while (userInput != 7); }
public void SendEmails() { var tag = Db.FetchOrCreateTag(Util.SessionId, Util.UserPeopleId, Db.NextTagId); Db.ExecuteCommand("delete TagPerson where Id = {0}", tag.Id); Db.TagAll(pids, tag); var dt = new DateTime(ticks); foreach (var id in pids) { var vr = new SubRequest { AttendId = attend.AttendId, RequestorId = person.PeopleId, Requested = dt, SubstituteId = id, }; attend.SubRequests.Add(vr); } var qb = Db.ScratchPadCondition(); qb.Reset(Db); qb.AddNewClause(QueryType.HasMyTag, CompareType.Equal, "{0},temp".Fmt(tag.Id)); attend.Commitment = CmsData.Codes.AttendCommitmentCode.FindSub; qb.Save(DbUtil.Db); var rurl = DbUtil.Db.ServerLink("/OnlineReg/VolSubReport/{0}/{1}/{2}".Fmt(attend.AttendId, person.PeopleId, dt.Ticks)); var reportlink = @"<a href=""{0}"">Substitute Status Report</a>".Fmt(rurl); var list = Db.PeopleFromPidString(org.NotifyIds).ToList(); //list.Insert(0, person); Db.Email(person.FromEmail, list, "Volunteer Substitute Commitment for " + org.OrganizationName, @" <p>{0} has requested a substitute on {1:MMM d} at {1:h:mm tt}.</p> <blockquote> {2} </blockquote>".Fmt(person.Name, attend.MeetingDate, reportlink)); // Email subs var m = new MassEmailer(qb.Id); m.Subject = subject; m.Body = message; DbUtil.LogActivity("Emailing Vol Subs"); m.FromName = person.Name; m.FromAddress = person.FromEmail; var eqid = m.CreateQueue(transactional: true).Id; string host = Util.Host; // save these from HttpContext to set again inside thread local storage var useremail = Util.UserEmail; var isinroleemailtest = HttpContext.Current.User.IsInRole("EmailTest"); TaskAlias.Factory.StartNew(() => { Thread.CurrentThread.Priority = ThreadPriority.BelowNormal; try { var db = new CMSDataContext(Util.GetConnectionString(host)); db.Host = host; // set these again inside thread local storage Util.UserEmail = useremail; Util.IsInRoleEmailTest = isinroleemailtest; db.SendPeopleEmail(eqid); } catch (Exception ex) { var ex2 = new Exception("Emailing error for queueid " + eqid, ex); ErrorLog errorLog = ErrorLog.GetDefault(null); errorLog.Log(new Error(ex2)); var db = new CMSDataContext(Util.GetConnectionString(host)); db.Host = host; // set these again inside thread local storage Util.UserEmail = useremail; Util.IsInRoleEmailTest = isinroleemailtest; var equeue = db.EmailQueues.Single(ee => ee.Id == eqid); equeue.Error = ex.Message.Truncate(200); db.SubmitChanges(); } }); }
private static async Task <SubscriptionResponse> ProcessSubscription(BitcornContext dbContext, SubscriptionResponse output, SubRequest subRequest, Subscription subInfo, SubscriptionTier requestedTierInfo, User user) { decimal cost = 0; //if tier usdt cost has been initialized, the corn cost has to be calculated if (requestedTierInfo.CostUsdt != null && requestedTierInfo.CostUsdt > 0) { cost = await CalculateUsdtToCornCost(dbContext, requestedTierInfo); } // check if cost is initialized properly else if (requestedTierInfo.CostCorn != null && requestedTierInfo.CostCorn > 0) { cost = requestedTierInfo.CostCorn.Value; } else { throw new ArgumentException($"Invalid cost setting on subscription tier id:{requestedTierInfo.SubscriptionId}"); } //set the amount that will be removed from subscriber to the response object output.Cost = cost; //initialize array of existing subscriptions UserSubcriptionTierInfo[] existingSubscriptions = new UserSubcriptionTierInfo[0]; if (user != null) { //set data to existing subscriptions array existingSubscriptions = await GetUserSubscriptions(dbContext, user) .Where(t => t.SubscriptionTier.SubscriptionId == subInfo.SubscriptionId).ToArrayAsync(); } //initialize reference to existing subtierinfo UserSubcriptionTierInfo existingSubscription = null; //initialize current substate var subState = SubscriptionState.None; //if any subscriptions were found if (existingSubscriptions.Any()) { //set existing subtierinfo existingSubscription = existingSubscriptions[0]; //if sub has expired, set substate to expired if (subInfo.HasExpired(existingSubscription.UserSubscription)) { subState = SubscriptionState.Expired; } //if existing sub has not expired, but the tier is below, set subState to TierDown else if (existingSubscription.SubscriptionTier.Tier < requestedTierInfo.Tier) { subState = SubscriptionState.TierDown; } //else, the user is subscribed else { subState = SubscriptionState.Subscribed; } } //initialize reference to usersubscription & tx request UserSubscription sub = null; TxRequest txRequest = null; //if current user sub state is not subscribed & the client confirmed the cost to be equal to the cost amount, attempt to subscribe var costDiff = Math.Abs(subRequest.Amount - cost); if (subState != SubscriptionState.Subscribed && costDiff <= 100000)//subRequest.Amount == cost) { //initialize recipient of the transaction string[] to = new string[1]; //default to bitcornhub if no subscription owner has been set int recipientId = TxUtils.BitcornHubPK; //if subscription owner is set, overwrite bitcornhub if (subInfo.OwnerUserId != null && subInfo.OwnerUserId > 0) { recipientId = subInfo.OwnerUserId.Value; } to[0] = $"userid|{recipientId}"; //initialize tx request txRequest = new TxRequest(user, cost, subRequest.Platform, "$sub", to); //prepare transaction for saving var processInfo = await TxUtils.ProcessRequest(txRequest, dbContext); var transactions = processInfo.Transactions; if (transactions != null && transactions.Length > 0) { StringBuilder sql = new StringBuilder(); //check if transaction can be executed if (processInfo.WriteTransactionOutput(sql)) { //transaction is ready to be saved switch (subState) { case SubscriptionState.None: //user was previously not subscribed, create instance of usersubscription and point it to the user sub = new UserSubscription(); sub.SubscriptionId = subInfo.SubscriptionId; sub.SubscriptionTierId = requestedTierInfo.SubscriptionTierId; sub.UserId = user.UserId; sub.FirstSubDate = DateTime.Now; sub.SubCount = 1; dbContext.UserSubscription.Add(sub); break; case SubscriptionState.TierDown: case SubscriptionState.Expired: //previous subscription was found, update subscription tier existingSubscription.UserSubscription.SubscriptionTierId = requestedTierInfo.SubscriptionTierId; existingSubscription.UserSubscription.SubCount += 1; sub = existingSubscription.UserSubscription; break; default: break; } //set subscription date to now sub.LastSubDate = DateTime.Now; await DbOperations.ExecuteSqlRawAsync(dbContext, sql.ToString()); await dbContext.SaveAsync(IsolationLevel.RepeatableRead); //create subtx that will link user, corntx and usersubscription together var subTx = new SubTx(); subTx.UserId = user.UserId; subTx.SubTxId = transactions[0].TxId.Value; subTx.UserSubscriptionId = sub.UserSubscriptionId; dbContext.SubTx.Add(subTx); //if user was not subscribed before, attempt to share the payment with a referrer if (!await TrySharePaymentWithReferrer(dbContext, output, subRequest, subInfo, requestedTierInfo, user, recipientId, cost, subState, subTx)) { await dbContext.SaveAsync(); } subState = SubscriptionState.Subscribed; } //append receipt object with what client requested await TxUtils.AppendTxs(transactions, dbContext, subRequest.Columns); var tx = transactions[0]; output.TxId = tx.TxId; output.User = tx.From; } } //couldn't process transaction if (txRequest == null) { //fill out response object await PopuplateUserResponse(dbContext, subRequest, output, user); if (existingSubscription != null) { sub = existingSubscription.UserSubscription; } } if (subState == SubscriptionState.Subscribed && sub != null) { var end = output.SubscriptionEndTime = sub.LastSubDate.Value.AddDays(subInfo.Duration); //calculate days left output.DaysLeft = Math.Ceiling((end.Value - DateTime.Now).TotalDays); //setup sub info output.UserSubscriptionInfo = await GetUserSubscriptions(dbContext, user) .Where(t => t.SubscriptionTier.SubscriptionId == subInfo.SubscriptionId).FirstOrDefaultAsync(); } return(output); }
public static async Task <SubscriptionResponse> Subscribe(BitcornContext dbContext, User user, SubRequest subRequest) { try { //try to find subscription var subInfo = await dbContext.Subscription.FirstOrDefaultAsync(s => s.Name.ToLower() == subRequest.SubscriptionName.ToLower()); //initialize response object var output = new SubscriptionResponse(); if (subInfo != null) { output.RequestedSubscriptionInfo = subInfo; //try to find subscription tier info var requestedTierInfo = await dbContext.SubscriptionTier.FirstOrDefaultAsync(t => t.SubscriptionId == subInfo.SubscriptionId && t.Tier == subRequest.Tier); output.RequestedSubscriptionTier = requestedTierInfo; //if tier was found, attempt to process the subscription if (requestedTierInfo != null) { return(await ProcessSubscription(dbContext, output, subRequest, subInfo, requestedTierInfo, user)); } else { //this subscription cannot be executed, fill out the response object await PopuplateUserResponse(dbContext, subRequest, output, user); } } else { //this subscription cannot be executed, fill out the response object await PopuplateUserResponse(dbContext, subRequest, output, user); } return(output); } catch (Exception e) { await BITCORNLogger.LogError(dbContext, e, null); throw e; } }
static void Main(string[] args) { //this is the menu Console.WriteLine("¿quieres hacer un traking de las operaciones (s/n)?"); var y = Console.ReadLine(); if (y.Equals("s")) { Console.WriteLine("dime tu id"); id = Console.ReadLine(); } int i = -1; do { //type of operation Console.WriteLine("1. suma 2. resta 3.multi 4.dividir 5.raiz 6.journal 7.salir"); //read an option i = leer(); string operationUrl = url; switch (i) { case 1: AddRequest add = new AddRequest(); operationUrl = url + "Sum"; add.Addends = leerArray(); SendRequestAndReturnResponseWithTraking("Sum", operationUrl, add, id); i = -1; break; case 2: SubRequest sub = new SubRequest(); operationUrl = url + "Diference"; Console.WriteLine("introduce Minuend"); sub.Minuend = leer(); Console.WriteLine("introduce Minuend"); sub.Subtrahend = leer(); SendRequestAndReturnResponseWithTraking("Diference", operationUrl, sub, id); i = -1; break; case 3: MultRequest mult = new MultRequest(); operationUrl = url + "Product"; mult.Factors = leerArray(); SendRequestAndReturnResponseWithTraking("Product", operationUrl, mult, id); i = -1; break; case 4: DivRequest div = new DivRequest(); operationUrl = url + "Div"; Console.WriteLine("introduce Dividend"); div.Dividend = leer(); Console.WriteLine("introduce Divisor"); div.Divisor = leer(); SendRequestAndReturnResponseWithTraking("Div", operationUrl, div, id); i = -1; break; case 5: SqrtRequest sqrt = new SqrtRequest(); operationUrl = url + "Sqrt"; Console.WriteLine("intro num"); sqrt.Number = leer(); SendRequestAndReturnResponseWithTraking("Sqrt", operationUrl, sqrt, id); i = -1; break; case 6: JournalRequest jour = new JournalRequest(); operationUrl = url + "Journal"; Console.WriteLine("dime id"); jour.id = Console.ReadLine(); SendRequestAndReturnResponseWithTraking("Journal", operationUrl, jour, id); i = -1; break; case 7: Console.WriteLine("bye"); break; } } while (!(i > 0 && i < 8)); Console.ReadLine(); }