public async Task <IActionResult> PutConstituencyDetails(long id, ConstituencyDetails constituencyDetails)
        {
            if (id != constituencyDetails.ConstituencyDetailId)
            {
                return(BadRequest());
            }

            db.Entry(constituencyDetails).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ConstituencyDetailsExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public IActionResult UpdateConstituency([FromBody] ConstituencyDetails constituencyDetails)
        {
            try
            {
                if (constituencyDetails == null)
                {
                    return(BadRequest(new { message = "حدث خطأ في ارسال البيانات الرجاء إعادة الادخال" }));
                }

                if (constituencyDetails.ConstituencyDetailId == null)
                {
                    return(BadRequest(new { message = "الرجاء إختيار المنطقة الفرعية" }));
                }

                if (constituencyDetails.RegionId == null)
                {
                    return(BadRequest(new { message = "الرجاء إختيار المنطقة" }));
                }

                if (string.IsNullOrEmpty(constituencyDetails.ArabicName) || string.IsNullOrWhiteSpace(constituencyDetails.ArabicName))
                {
                    return(BadRequest(new { message = "الرجاء إدخال اسم المنطقة بالعربي" }));
                }

                if (string.IsNullOrEmpty(constituencyDetails.EnglishName) || string.IsNullOrWhiteSpace(constituencyDetails.EnglishName))
                {
                    return(BadRequest(new { message = "الرجاء إدخال اسم المنطقة بالانجليزي" }));
                }

                if (constituencyDetails.ConstituencyId == null)
                {
                    return(BadRequest(new { message = "الرجاء إختيار المنطقة الرئيسية" }));
                }

                var selectedConstituencyDetails = db.ConstituencyDetails.Where(x => x.ConstituencyDetailId == constituencyDetails.ConstituencyDetailId).FirstOrDefault();

                if (selectedConstituencyDetails == null)
                {
                    return(BadRequest(new { message = "المنطفة التي تم إختيارها غير متوفرة" }));
                }
                selectedConstituencyDetails.ArabicName     = constituencyDetails.ArabicName;
                selectedConstituencyDetails.EnglishName    = constituencyDetails.EnglishName;
                selectedConstituencyDetails.RegionId       = constituencyDetails.RegionId;
                selectedConstituencyDetails.Description    = constituencyDetails.Description;
                selectedConstituencyDetails.ConstituencyId = constituencyDetails.ConstituencyId;
                selectedConstituencyDetails.ModifiedBy     = constituencyDetails.ModifiedBy;
                selectedConstituencyDetails.ModifiedOn     = DateTime.Now;

                db.ConstituencyDetails.Update(selectedConstituencyDetails);
                db.SaveChanges();


                return(Ok(new { ConstituencyDetailId = selectedConstituencyDetails.ConstituencyDetailId, message = string.Format("تم تحديث الدائر الفرعية {0} بنجاح", selectedConstituencyDetails.ArabicName) }));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new { ex = ex.InnerException.Message, message = "حدث خطاء، حاول مجدداً" }));
            }
        }
        public IActionResult CreateConstituency([FromBody] ConstituencyDetails constituencyDetails)
        {
            try
            {
                if (constituencyDetails == null)
                {
                    return(BadRequest(new { message = "حدث خطأ في ارسال البيانات الرجاء إعادة الادخال" }));
                }

                if (constituencyDetails.RegionId == null)
                {
                    return(BadRequest(new { message = "الرجاء إختيار المنطقة" }));
                }

                if (constituencyDetails.ConstituencyId == 0)
                {
                    return(BadRequest(new { message = "الرجاء إختيار المنطقة الرئيسية" }));
                }

                if (string.IsNullOrEmpty(constituencyDetails.ArabicName) || string.IsNullOrWhiteSpace(constituencyDetails.ArabicName))
                {
                    return(BadRequest(new { message = "الرجاء إدخال اسم المنطقة الفرعية بالعربي" }));
                }

                if (string.IsNullOrEmpty(constituencyDetails.EnglishName) || string.IsNullOrWhiteSpace(constituencyDetails.EnglishName))
                {
                    return(BadRequest(new { message = "الرجاء إدخال اسم المنطقة الفرعية بالانجليزي" }));
                }

                var newConstituencyDetails = new ConstituencyDetails
                {
                    ArabicName     = constituencyDetails.ArabicName,
                    EnglishName    = constituencyDetails.EnglishName,
                    ConstituencyId = constituencyDetails.ConstituencyId,
                    RegionId       = constituencyDetails.RegionId,
                    Description    = constituencyDetails.Description,
                    CreatedOn      = DateTime.Now,
                    Status         = 1
                };

                db.ConstituencyDetails.Add(newConstituencyDetails);
                db.SaveChanges();


                return(Ok(new { constituencyId = newConstituencyDetails.ConstituencyId, message = string.Format("تم إضافة الدائر الفرعية {0} بنجاح", newConstituencyDetails.ArabicName) }));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new { ex = ex.InnerException.Message, message = "حدث خطاء، حاول مجدداً" }));
            }
        }
        public async Task <ActionResult <ConstituencyDetails> > PostConstituencyDetails(ConstituencyDetails constituencyDetails)
        {
            db.ConstituencyDetails.Add(constituencyDetails);
            await db.SaveChangesAsync();

            return(CreatedAtAction("GetConstituencyDetails", new { id = constituencyDetails.ConstituencyDetailId }, constituencyDetails));
        }
        public IActionResult UpdateConstituency([FromBody] ConstituencyDetails constituencyDetails)
        {
            try
            {
                if (constituencyDetails == null)
                {
                    return(BadRequest("حدث خطأ في ارسال البيانات الرجاء إعادة الادخال"));
                }
                var userId = this.help.GetCurrentUser(HttpContext);

                if (userId <= 0)
                {
                    return(StatusCode(401, "الرجاء الـتأكد من أنك قمت بتسجيل الدخول"));
                }

                if (constituencyDetails.ConstituencyDetailId == null || constituencyDetails.ConstituencyDetailId == 0)
                {
                    return(BadRequest("الرجاء إختيار المنطقة الفرعية"));
                }

                if (constituencyDetails.RegionId == null)
                {
                    return(BadRequest("الرجاء إختيار المنطقة"));
                }

                if (string.IsNullOrEmpty(constituencyDetails.ArabicName) || string.IsNullOrWhiteSpace(constituencyDetails.ArabicName))
                {
                    return(BadRequest("الرجاء إدخال اسم المنطقة بالعربي"));
                }

                if (string.IsNullOrEmpty(constituencyDetails.EnglishName) || string.IsNullOrWhiteSpace(constituencyDetails.EnglishName))
                {
                    return(BadRequest("الرجاء إدخال اسم المنطقة بالانجليزي"));
                }

                if (constituencyDetails.ConstituencyId == null)
                {
                    return(BadRequest("الرجاء إختيار المنطقة الرئيسية"));
                }

                var selectedConstituencyDetails = db.ConstituencyDetails.Where(x => x.ConstituencyDetailId == constituencyDetails.ConstituencyDetailId).FirstOrDefault();

                if (selectedConstituencyDetails == null)
                {
                    return(BadRequest("المنطفة التي تم إختيارها غير متوفرة"));
                }
                selectedConstituencyDetails.ArabicName     = constituencyDetails.ArabicName;
                selectedConstituencyDetails.EnglishName    = constituencyDetails.EnglishName;
                selectedConstituencyDetails.RegionId       = constituencyDetails.RegionId;
                selectedConstituencyDetails.Description    = constituencyDetails.Description;
                selectedConstituencyDetails.ConstituencyId = constituencyDetails.ConstituencyId;
                selectedConstituencyDetails.ModifiedBy     = userId;
                selectedConstituencyDetails.ModifiedOn     = DateTime.Now;

                db.ConstituencyDetails.Update(selectedConstituencyDetails);
                db.SaveChanges();


                return(Ok(string.Format("تم تحديث الدائر الفرعية {0} بنجاح", selectedConstituencyDetails.ArabicName)));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
        public IActionResult CreateConstituency([FromBody] ConstituencyDetails constituencyDetails)
        {
            try
            {
                UserProfile UP = this.help.GetProfileId(HttpContext, db);
                if (UP.UserId <= 0)
                {
                    return(StatusCode(401, "الرجاء الـتأكد من أنك قمت بتسجيل الدخول"));
                }
                if (UP.ProfileId <= 0)
                {
                    return(StatusCode(401, "الرجاء تفعيل ضبط الملف الانتخابي التشغيلي"));
                }

                if (constituencyDetails == null)
                {
                    return(BadRequest("حدث خطأ في ارسال البيانات الرجاء إعادة الادخال"));
                }

                if (constituencyDetails.RegionId == null)
                {
                    return(BadRequest("الرجاء إختيار المنطقة"));
                }

                if (constituencyDetails.ConstituencyId == 0)
                {
                    return(BadRequest("الرجاء إختيار المنطقة الرئيسية"));
                }

                if (string.IsNullOrEmpty(constituencyDetails.ArabicName) || string.IsNullOrWhiteSpace(constituencyDetails.ArabicName))
                {
                    return(BadRequest("الرجاء إدخال اسم المنطقة الفرعية بالعربي"));
                }

                if (string.IsNullOrEmpty(constituencyDetails.EnglishName) || string.IsNullOrWhiteSpace(constituencyDetails.EnglishName))
                {
                    return(BadRequest("الرجاء إدخال اسم المنطقة الفرعية بالانجليزي"));
                }

                var newConstituencyDetails = new ConstituencyDetails
                {
                    ArabicName     = constituencyDetails.ArabicName,
                    EnglishName    = constituencyDetails.EnglishName,
                    ConstituencyId = constituencyDetails.ConstituencyId,
                    RegionId       = constituencyDetails.RegionId,
                    Description    = constituencyDetails.Description,
                    ProfileId      = UP.ProfileId,
                    CreatedOn      = DateTime.Now,
                    CreatedBy      = UP.UserId,
                    Status         = 1
                };

                db.ConstituencyDetails.Add(newConstituencyDetails);
                db.SaveChanges();


                return(Ok(new { constituencyId = newConstituencyDetails.ConstituencyId, message = string.Format("تم إضافة الدائر الفرعية {0} بنجاح", newConstituencyDetails.ArabicName) }));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }