public async Task <IActionResult> Edit(int?id)
        {
            //var claimId =(ClaimsIdentity)this.User.Identity;

            //var claim = claimId.FindFirst(System.Security.Claims.ClaimTypes.NameIdentifier);

            //var use=_context.ApplicationUsers.Where(c=>c.Id!=claim.Value).ToList();


            if (id == null)
            {
                return(NotFound());
            }
            var SubcatagoryList = await _context.SubCatagories.FirstOrDefaultAsync(i => i.Id == id);

            if (SubcatagoryList == null)
            {
                return(NotFound());
            }

            SubCatagoryAndCatagoryViewModel model = new SubCatagoryAndCatagoryViewModel
            {
                catagoriesList  = _context.Catagories.ToList(),
                subCatagory     = SubcatagoryList,
                SubCatagoryList = _context.SubCatagories.Select(p => p.Name).Distinct().ToList()
            };


            return(View(model));
        }
        public IActionResult Create()
        {
            SubCatagoryAndCatagoryViewModel model = new SubCatagoryAndCatagoryViewModel()
            {
                catagoriesList  = _context.Catagories.ToList(),
                subCatagory     = new SubCatagory(),
                SubCatagoryList = _context.SubCatagories.OrderBy(c => c.Name).Select(c => c.Name).ToList()
            };

            return(View(model));
        }
        public async Task <IActionResult> Create(SubCatagoryAndCatagoryViewModel model)
        {
            if (ModelState.IsValid)
            {
                var DoesSubcatagoryExist = _context.SubCatagories.Where(x => x.Name == model.subCatagory.Name).Count();

                var DoesSubcatagoryAndCatagoryExist = _context.SubCatagories.Where(x => x.Name == model.subCatagory.Name && x.CatagoryId == model.subCatagory.CatagoryId).Count();

                if (DoesSubcatagoryExist > 0 && model.IsNew)
                {
                    //Eror

                    statusMessage = "Error : Sub Catagory Name is Already exist";
                }
                else
                {
                    if (DoesSubcatagoryExist == 0 && !model.IsNew)
                    {
                        //error

                        statusMessage = "Error : Sub Catagory Name doesn't exist";
                    }

                    else
                    {
                        if (DoesSubcatagoryAndCatagoryExist > 0)
                        {
                            //Error


                            statusMessage = "Error : Sub Catagory and Catagory Combination already exist";
                        }
                        else
                        {
                            _context.SubCatagories.Add(model.subCatagory);
                            await _context.SaveChangesAsync();

                            return(RedirectToAction(nameof(Index)));
                        }
                    }
                }
            }

            SubCatagoryAndCatagoryViewModel model1 = new SubCatagoryAndCatagoryViewModel()
            {
                catagoriesList  = _context.Catagories.ToList(),
                subCatagory     = model.subCatagory,
                SubCatagoryList = _context.SubCatagories.OrderBy(c => c.Name).Select(c => c.Name).ToList(),
                statusMessage   = statusMessage
            };

            return(View(model1));
        }
        public async Task <IActionResult> Edit(int?id, SubCatagoryAndCatagoryViewModel model)
        {
            if (ModelState.IsValid)
            {
                var doesSubCatagoryExist = _context.SubCatagories.Where(x => x.Name == model.subCatagory.Name).Count();

                var doesSubCataAndCatagoryExist = _context.SubCatagories.Where(x => x.Name == model.subCatagory.Name && x.CatagoryId == model.subCatagory.CatagoryId).Count();

                if (doesSubCatagoryExist > 0)
                {
                    statusMessage = "Error :Subcatagory does not exist, You can not add new subCaagory here";
                }
                else
                {
                    if (doesSubCataAndCatagoryExist > 0)
                    {
                        statusMessage = "Error :SubCatagory and Catagory Combination have already exist";
                    }
                    else
                    {
                        var subcat = _context.SubCatagories.Find(id);

                        subcat.Name = model.subCatagory
                                      .Name;
                        subcat.CatagoryId = model.subCatagory.CatagoryId;

                        await _context.SaveChangesAsync();

                        return(RedirectToAction(nameof(Index)));
                    }
                }
            }
            SubCatagoryAndCatagoryViewModel obj = new SubCatagoryAndCatagoryViewModel
            {
                catagoriesList  = _context.Catagories.ToList(),
                subCatagory     = model.subCatagory,
                SubCatagoryList = _context.SubCatagories.Select(p => p.Name).Distinct().ToList(),
                statusMessage   = statusMessage
            };


            return(View(obj));
        }