public async Task <double> Div(DivModel divModel)
        {
            AddHeaderParameters();

            var response = await _httpClient.PostAsync(buildUrl("div"), builContent(divModel));

            return(JsonConvert.DeserializeObject <double>(await response.Content.ReadAsStringAsync()));
        }
Beispiel #2
0
        /// <summary>
        /// A button event that clears the division of selected prize levels
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void clearDivisionButton_Click(object sender, RoutedEventArgs e)
        {
            DivModel.clearPrizeLevelList();
            for (int i = 0; i < DivisionModel.MAX_PRIZE_BOXES; i++)
            {
                DivModel.levelBoxes[i].IsSelected = false;
            }

            DivModel.TotalPlayerPicks = DivModel.calculateTotalCollections();
            DivModel.TotalPrizeValue  = DivModel.calculateDivisionValue();
            SectionContainer.validateDivision();
        }
        public void Div(string trakingId, DivModel divModel)
        {
            if (!string.IsNullOrEmpty(trakingId))
            {
                var operationModel = new OperationModel();
                operationModel.Id          = trakingId;
                operationModel.Operation   = "Div";
                operationModel.Calculation = $"{divModel.Dividend}-{divModel.Divisor}";
                operationModel.Date        = DateTime.Now;

                _journalDatabase.Save(operationModel);
            }
        }
Beispiel #4
0
        public static string Div(DivModel oDiv, string sTrackingId)
        {
            var client  = new RestClient(string.Concat(ConfigurationManager.AppSettings["ServiceURL"], "/calculator/div"));
            var request = new RestRequest(Method.POST);

            setTracking(sTrackingId, request);
            request.AddHeader("cache-control", "no-cache");
            request.AddHeader("Content-Type", "application/json");
            request.AddParameter("undefined", JsonConvert.SerializeObject(oDiv), ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);

            return(response.Content);
        }
Beispiel #5
0
        /// <summary>
        /// Updates the total player picks and total value based on the selected prize levels
        /// </summary>
        public void updateInfo()
        {
            if (Prizes.getNumPrizeLevels() > 0)
            {
                DivModel.clearPrizeLevelList();
                for (int i = 0; i < Prizes.getNumPrizeLevels(); i++)
                {
                    if (DivModel.levelBoxes[i].IsSelected)
                    {
                        DivModel.addPrizeLevel(Prizes.getPrizeLevel(i));
                    }
                }

                DivModel.TotalPlayerPicks = DivModel.calculateTotalCollections();
                DivModel.TotalPrizeValue  = DivModel.calculateDivisionValue();
            }

            SectionContainer.validateDivision();
        }
Beispiel #6
0
        /// <summary>
        /// Listens for "shouts" made by other classes, if it is subscribed to that class
        /// </summary>
        /// <param name="pass"></param>
        public void onListen(object pass)
        {
            if (pass is PrizeLevels.PrizeLevels)
            {
                Prizes = (PrizeLevels.PrizeLevels)pass;

                for (int i = 0; i < DivisionModel.MAX_PRIZE_BOXES; i++)
                {
                    DivModel.levelBoxes[i].IsAvailable = false;
                }

                for (int i = 0; i < Prizes.getNumPrizeLevels(); i++)
                {
                    DivModel.levelBoxes[i].IsAvailable = true;
                }

                DivModel.clearPrizeLevelList();
                updateDivision();
            }
        }
Beispiel #7
0
        /// <summary>
        /// Updates all of the info and prize level box data in the division
        /// </summary>
        public void updateDivision()
        {
            if (Prizes.getNumPrizeLevels() > 0)
            {
                for (int i = 0; i < DivisionModel.MAX_PRIZE_BOXES; i++)
                {
                    if (DivModel.levelBoxes[i].IsAvailable && DivModel.levelBoxes[i].IsSelected)
                    {
                        DivModel.addPrizeLevel(Prizes.getPrizeLevel(i));
                    }
                    else
                    {
                        DivModel.levelBoxes[i].IsSelected = false;
                    }
                }

                DivModel.TotalPlayerPicks = DivModel.calculateTotalCollections();
                DivModel.TotalPrizeValue  = DivModel.calculateDivisionValue();
            }
        }
        public override Task <CommandResult> ExecuteAsync(CancellationToken cancel)
        {
            string sResult;

            try
            {
                Console.WriteLine("Calculating...");

                DivModel oDivModel = new DivModel(iDividend, iDivisor);
                sResult = Operations.Div(oDivModel, TrackingID);

                Console.WriteLine(sResult);

                return(Task.FromResult(CommandResult.Success));
            }
            catch (Exception ex)
            {
                Console.WriteLine("Something wrong happend, please check arguments are valid");
                return(Task.FromResult(CommandResult.UsageError));
            }
        }
Beispiel #9
0
        public HttpResponseMessage Mult([FromBody] DivModel oDiv)
        {
            DivResultModel oResult;
            string         sTrackingID = null;

            try
            {
                oResult = new DivResultModel();

                if (oDiv != null && oDiv.Dividend >= oDiv.Divisor && oDiv.Divisor > 0)
                {
                    // Operation is plus (+) because a less than zero value is expected as subtrahend
                    oResult.Quotinent = oDiv.Dividend / oDiv.Divisor;
                    oResult.Remainder = oDiv.Dividend % oDiv.Divisor;

                    // Once result has been calculated, checks if Tracking ID exists
                    // and in that case save operation and result
                    sTrackingID = CommonUtils.checkTrackingID(Request);
                    if (!string.IsNullOrEmpty(sTrackingID))
                    {
                        CommonUtils.saveToJournal(sTrackingID, oDiv, oResult);
                    }

                    return(Request.CreateResponse(HttpStatusCode.OK, oResult));
                }
                // In other case input is not valid
                else
                {
                    HttpError err = new HttpError("An invalid request has been received. This may mean the HTTP requests and/or the HTTP body may contains some errors which should be fixed.");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, err));
                }
            }
            catch (Exception ex)
            {
                // TODO: This exception should be logged somewhere
                // If something happens throws Internal Error
                HttpError err = new HttpError("An unexpected error condition was triggered which made impossible to fulfill the request. Please try again or contact support.");
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, err));
            }
        }
Beispiel #10
0
        static async Task Main(string[] args)
        {
            #region Local Functions

            void PrintResult(double resultValue) => Console.WriteLine($"The result is : {resultValue} ");

            List <double> GetListOfNumbers()
            {
                List <double> listNumbers = new List <double>();

                string result = string.Empty;

                while (result == string.Empty)
                {
                    Console.WriteLine("enter a number to add on the list or \"result\" to complete the operation");
                    string readNumberOrResult = Console.ReadLine();

                    if (double.TryParse(readNumberOrResult, out double Number))
                    {
                        listNumbers.Add(Number);
                    }
                    else if (readNumberOrResult == "result")
                    {
                        result = readNumberOrResult;
                    }
                    else
                    {
                        Console.WriteLine("Invalid Value");
                    }
                }

                return(listNumbers);
            }

            SubModel GetNumbersSub()
            {
                var  subModel   = new SubModel();
                bool Iscomplete = false;

                while (!Iscomplete)
                {
                    Console.WriteLine("enter the Minuend");
                    string readNumberOrResult = Console.ReadLine();

                    if (double.TryParse(readNumberOrResult, out double Minuend))
                    {
                        subModel.Minuend = Minuend;

                        Console.WriteLine("enter the Subtrahend");
                        readNumberOrResult = Console.ReadLine();

                        if (double.TryParse(readNumberOrResult, out double Subtrahend))
                        {
                            subModel.Subtrahend = Subtrahend;
                            Iscomplete          = true;
                        }
                        else
                        {
                            Console.WriteLine("Invalid Value");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Invalid Value");
                    }
                }

                return(subModel);
            }

            DivModel GetNumbersDiv()
            {
                var  subModel   = new DivModel();
                bool Iscomplete = false;

                while (!Iscomplete)
                {
                    Console.WriteLine("enter the Dividend");
                    string readNumberOrResult = Console.ReadLine();

                    if (double.TryParse(readNumberOrResult, out double Minuend))
                    {
                        subModel.Dividend = Minuend;

                        Console.WriteLine("enter the Divisor");
                        readNumberOrResult = Console.ReadLine();

                        if (double.TryParse(readNumberOrResult, out double Subtrahend))
                        {
                            subModel.Divisor = Subtrahend;
                            Iscomplete       = true;
                        }
                        else
                        {
                            Console.WriteLine("Invalid Value");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Invalid Value");
                    }
                }

                return(subModel);
            }

            double GetNumberSqrt()
            {
                var subModel = new DivModel();

                while (true)
                {
                    Console.WriteLine("enter the number");
                    string readNumberOrResult = Console.ReadLine();

                    if (double.TryParse(readNumberOrResult, out double numberSqrt))
                    {
                        return(numberSqrt);
                    }
                    else
                    {
                        Console.WriteLine("Invalid Value");
                    }
                }
            }

            void GetTrackingId()
            {
                Console.WriteLine("Enter the TrackingId or press enter to continue");
                string trackingId = Console.ReadLine();

                calculatorServer.TrackingID = trackingId;
            }

            #endregion


            Console.WriteLine("WELCOME TO CALCULATOR APP");

            while (statusApp.ToLower() != "exit")
            {
                Console.WriteLine("choose on opetation (ADD, SUB, MULT, DIV, SQRT) use \"exit\" to finish ");

                string readMethod = Console.ReadLine();

                if (Enum.TryParse <OperationType>(readMethod, out OperationType ExtractMethod))
                {
                    calculatorMethod = ExtractMethod;
                }

                switch (calculatorMethod)
                {
                case OperationType.ADD:

                    GetTrackingId();

                    List <double> listNumbers = GetListOfNumbers();

                    PrintResult(calculatorServer.Add(listNumbers).Result);

                    break;

                case OperationType.SUB:

                    GetTrackingId();

                    SubModel subModel = GetNumbersSub();

                    PrintResult(await calculatorServer.Sub(subModel));

                    break;

                case OperationType.MULT:

                    GetTrackingId();

                    List <double> listNumbersMULT = GetListOfNumbers();

                    PrintResult(await calculatorServer.Mult(listNumbersMULT));

                    break;

                case OperationType.DIV:

                    GetTrackingId();

                    DivModel divModel = GetNumbersDiv();

                    PrintResult(await calculatorServer.Div(divModel));

                    break;

                case OperationType.SQRT:

                    GetTrackingId();

                    var numbersqr = GetNumberSqrt();

                    PrintResult(await calculatorServer.Sqrt(numbersqr));

                    break;

                case OperationType.NONE:
                default:
                    break;
                }
            }

            Console.ReadLine();
        }
Beispiel #11
0
 public double Div([FromBody] DivModel divModel)
 {
     journal.Div(TrackingHelper.GetHeaderValue(Request), divModel);
     return(divModel.Dividend / divModel.Divisor);
 }