locked
Total Count divided range calculation in c# RRS feed

  • Question

  • User689180510 posted

    Hi,

    I have a task ,which if records contains more than 299, i need to pass the value 299 for each call to the backend 

    eg : Total Rows = 1000, i need to send each call as 299 i,e(0-299, 300-599, 600-899 ......)

    Coding:

    output :  response. totalrows = 1000;

    ///  how to write a condition/calculation here

    Readdata(reponsexml, response)

    return response ; //after that i need to add all the Readdata statement output and bind in final response .

    Thanks in advance </div>

    Wednesday, December 19, 2018 9:14 AM

Answers

  • User-893317190 posted

    Hi jafferpg,

    According to your description, do you want 299 when the record is in 300-599 ,want 599 when record is in 600-899 , want 899 when record is in 900-1199?

    If so , you could try the code below.To show the range , I use the method DivideRecords, you could only use the method GetResult.

      protected void Page_Load(object sender, EventArgs e)
            {
                Response.Write(DivideRecords(1000)+";"+"result:"+GetResult(1000));
            }
            static double GetResult(int number)
            {
                double count = Math.Ceiling((number+1) * 1.0 / 300); //get how many 300 there are in the number
                return (count - 1) * 300 - 1; //get the final result according to  how many 300 there are in the number
            }
            static string DivideRecords(int number)
            {
                string result = "";
                double count = Math.Ceiling(number * 1.0 / 300);
                for (int i = 0; i < count-1; i++)
                {
                    string temp = i * 300 + "-" + ((i + 1) * 300 - 1)+",";
                    result += temp;
                }
                result += (count - 1) * 300 + "-" + (number-1);
                return result;
            }

    Below is the result.

    If it is not your case , please specify your problem and provide the code your have tried,it is not clear about your method Readdata(reponsexml, response).

    Best regards,

    Ackerly Xu

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Thursday, December 20, 2018 2:39 AM
  • User689180510 posted

    Thanks Ackerly for your response!!

    I done by using the below method

    if (response.TotalCountRows > 299)
    {
    for (int i = 300; i <= response.TotalCountRows; i++)
    {
    search.firstvalue = i;
    if ((i + 299) <= response.TotalCountRows)
    search.lastvalue = i + 299;
    else
    search.lastvalue = Convert.ToInt32(response.TotalCountRows);

    SplitData(search, messageID, response);

    i = i + 299;
    }
    }

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Thursday, December 20, 2018 8:53 AM

All replies

  • User-893317190 posted

    Hi jafferpg,

    According to your description, do you want 299 when the record is in 300-599 ,want 599 when record is in 600-899 , want 899 when record is in 900-1199?

    If so , you could try the code below.To show the range , I use the method DivideRecords, you could only use the method GetResult.

      protected void Page_Load(object sender, EventArgs e)
            {
                Response.Write(DivideRecords(1000)+";"+"result:"+GetResult(1000));
            }
            static double GetResult(int number)
            {
                double count = Math.Ceiling((number+1) * 1.0 / 300); //get how many 300 there are in the number
                return (count - 1) * 300 - 1; //get the final result according to  how many 300 there are in the number
            }
            static string DivideRecords(int number)
            {
                string result = "";
                double count = Math.Ceiling(number * 1.0 / 300);
                for (int i = 0; i < count-1; i++)
                {
                    string temp = i * 300 + "-" + ((i + 1) * 300 - 1)+",";
                    result += temp;
                }
                result += (count - 1) * 300 + "-" + (number-1);
                return result;
            }

    Below is the result.

    If it is not your case , please specify your problem and provide the code your have tried,it is not clear about your method Readdata(reponsexml, response).

    Best regards,

    Ackerly Xu

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Thursday, December 20, 2018 2:39 AM
  • User689180510 posted

    Thanks Ackerly for your response!!

    I done by using the below method

    if (response.TotalCountRows > 299)
    {
    for (int i = 300; i <= response.TotalCountRows; i++)
    {
    search.firstvalue = i;
    if ((i + 299) <= response.TotalCountRows)
    search.lastvalue = i + 299;
    else
    search.lastvalue = Convert.ToInt32(response.TotalCountRows);

    SplitData(search, messageID, response);

    i = i + 299;
    }
    }

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Thursday, December 20, 2018 8:53 AM