public string SaveCenter(Center aCenter, int thanaId, string centerCode, string password)
        {
            int value = centerGateway.SaveCenter(aCenter, thanaId, centerCode, password);

            if (value > 0)
            {
                return "Center has been Saved!";
            }
            else return "Failed";
        }
        public List<Center> GetAllDistrict()
        {
            List<Center> districtList=new List<Center>();

             string query = "SELECT * FROM DistrictTBL";
            SqlConnection connection = new SqlConnection(connectionString);

            SqlCommand command = new SqlCommand(query, connection);
            connection.Open();
            SqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                Center center=new Center();
                center.Id=int.Parse(reader["Id"].ToString());
                center.DistrictName = reader["DistrictName"].ToString();

                districtList.Add(center);

            }
            reader.Close();
            connection.Close();
            return districtList;
        }
        public List<Center> GetAllThana(int id)
        {
            List<Center> thanaList = new List<Center>();

            string query = "SELECT * FROM ThanaTBL WHERE DistrictId='"+id+"'";
            SqlConnection connection = new SqlConnection(connectionString);

            SqlCommand command = new SqlCommand(query, connection);
            connection.Open();
            SqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                Center center = new Center();
                center.Id = int.Parse(reader["Id"].ToString());
                center.ThanaName = reader["ThanaName"].ToString();

                thanaList.Add(center);

            }
            reader.Close();
            connection.Close();
            return thanaList;
        }
        protected void saveButton_Click(object sender, EventArgs e)
        {
            Center aCenter = new Center();
            aCenter.CenterName = centerNameTextBox.Text;
            if (centerManager.IsCenterNameExists(aCenter))
            {
                megLabel.Text = "Center name already exists!";
            }
            else
            {
                int thanaId = int.Parse(thanaCenterDropDownList.SelectedValue);
                string newPassword = CreatePassword();
                string password = EncryptSHA512Managed(newPassword);
                int centerCount = centerManager.CenterCountInThana(thanaId) + 1;
                string centerCode = CreateCenterCode(thanaCenterDropDownList.SelectedItem.ToString(), centerCount);
                Session["centerName"] = aCenter.CenterName;
                Session["centerCode"] = centerCode;
                Session["password"] = newPassword;
                megLabel.Text = centerManager.SaveCenter(aCenter, thanaId, centerCode, password);
                Response.Redirect("CenterPasswordAndCodeUI.aspx");

            }
        }
        public List<Center> CenterCountInThana(int id)
        {
            int count = 0;
            List<Center> centerList=new List<Center>();
            string query = "SELECT * FROM CenterTBL WHERE ThanaId='" + id + "'";
            SqlConnection connection = new SqlConnection(connectionString);

            SqlCommand command = new SqlCommand(query, connection);
            connection.Open();
            SqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                Center aCenter=new Center();
                aCenter.Id =int.Parse( reader["Id"].ToString());
                aCenter.CenterName = reader["CenterName"].ToString();
                count++;
                aCenter.Count = count;
                centerList.Add(aCenter);

            }
            reader.Close();
            connection.Close();
            return centerList;
        }
 public bool IsCenterNameExists(Center aCenter)
 {
     return centerGateway.IsCenterNameExists(aCenter);
 }
        public int SaveCenter(Center aCenter, int thanaId, string centerCode, string password)
        {
            string query = "INSERT INTO CenterTBL VALUES('" + aCenter.CenterName + "','" + thanaId + "','" + centerCode + "','" + password + "')";
            SqlConnection connection = new SqlConnection(connectionString);

            SqlCommand command = new SqlCommand(query, connection);
            connection.Open();
            int rowAffected = command.ExecuteNonQuery();
            connection.Close();
            return rowAffected;
        }
        public bool IsCenterNameExists(Center aCenter)
        {
            bool exists = false;
            string query = "SELECT * FROM CenterTBL WHERE CenterName='" + aCenter.CenterName + "'";
            SqlConnection connection = new SqlConnection(connectionString);

            SqlCommand command = new SqlCommand(query, connection);
            connection.Open();
            SqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {

                exists = true;

            }
            reader.Close();
            connection.Close();
            return exists;
        }
        protected void showButton_Click(object sender, EventArgs e)
        {
            string dateFrom = Request.Form["dateFrom"];
            string dateTo = Request.Form["dateTo"];

            int yearFrom = int.Parse(dateFrom.Substring(0, 4));
            int monthFrom = int.Parse(dateFrom.Substring(5, 2));
            int dayFrom = int.Parse(dateFrom.Substring(8, 2));

            int monthTo = int.Parse(dateTo.Substring(5, 2));
            int dayTo = int.Parse(dateTo.Substring(8, 2));
            int yearTo = int.Parse(dateTo.Substring(0, 4));

            List<int> observaIdList = new List<int>();
            if (yearTo < yearFrom)
            {
                megLabel.Text = "Incorrect date formet!";
            }
            else if (yearFrom == yearTo && monthTo < monthFrom)
            {
                megLabel.Text = "Incorrect date formet!";
            }
            else if (yearFrom == yearTo && monthTo == monthFrom && dayTo < dayFrom)
            {
                megLabel.Text = "Incorrect date formet!";
            }
            else
            {
                megLabel.Text = "";
                for (int i = dayFrom; ; i++)
                {
                    if (yearTo == yearFrom && monthTo == monthFrom && i == dayTo)
                    {
                        string date2 = yearFrom + "-" + monthFrom + "-" + i;
                        int patient2 = treatmentManager.GetObservationIdForDistrict(date2);
                        observaIdList.Add(patient2);
                        break;
                    }
                    string date = yearFrom + "-" + monthFrom + "-" + i;
                    int patient = treatmentManager.GetObservationIdForDistrict(date);
                    observaIdList.Add(patient);
                    if (i == 31 && monthFrom != 12)
                    {
                        monthFrom++;
                        i = 0;
                    }
                    else if (monthFrom == 12 && dayFrom == 31)
                    {
                        yearFrom++;
                        monthFrom = 1;
                        i = 0;
                    }
                }
            }
            List<int> observationIdList = new List<int>();
            int diseaseId = int.Parse(diseaseDropDownList.SelectedValue);
            foreach (int id in observaIdList)
            {
                int ObId = treatmentManager.GetObsId(id, diseaseId);
                observationIdList.Add(ObId);
            }
            List<int> centerIdList = new List<int>();
            foreach (int id in observationIdList)
            {
                int centerId = treatmentManager.GetCenterIdForDistrict(id);
                centerIdList.Add(centerId);
            }
            List<Center> districtNameList = new List<Center>();
            List<Center> allDistrictNameList = centerManager.GetAllDistrict();
            foreach (int id in centerIdList)
            {
                List<int> districtIdList = centerManager.GetDistrictIdList(id);
                foreach (int disId in districtIdList)
                {
                    Center aCenter = new Center();
                    aCenter.DistrictName = centerManager.GetDistrict(disId);
                    districtNameList.Add(aCenter);
                }
            }
            List<Center> aCenterList = new List<Center>();
            foreach (var districtName in allDistrictNameList)
            {

                int count = 0;
                foreach (var nameOfDistrict in districtNameList)
                {
                    if (districtName.DistrictName.Equals(nameOfDistrict.DistrictName))
                    {
                        count++;
                    }
                }
                Center aCenter = new Center();
                aCenter.DistrictName = districtName.DistrictName;
                decimal population = centerManager.GetDistrictPopulation(aCenter.DistrictName);
                aCenter.Population = (count / population) * 100;
                aCenter.Count = count;
                aCenterList.Add(aCenter);
            }
            reportGridView.DataSource = aCenterList;
            reportGridView.DataBind();
        }