public async Task <IActionResult> CreateUpdateCategory(ServiceCategoryViewModel model)
        {
            var message = model.Id != null ? Messages.ItemUpdatedSuccessFully : Messages.ItemAddedSuccessFully;

            var strategy = _dbContext.Database.CreateExecutionStrategy();

            await strategy.ExecuteAsync(async() =>
            {
                using (var transaction = _dbContext.Database.BeginTransaction())
                {
                    if (model.Id != null)
                    {
                        var group = await _dbContext.ServiceCategories.FindAsync(model.Id);

                        if (group == null)
                        {
                            throw new AwroNoreException("Service Category Not Found");
                        }

                        group.Name       = model.Name;
                        group.Name_Ar    = model.Name_Ar;
                        group.Name_Ku    = model.Name_Ku;
                        group.CenterType = model.CenterType;
                        group.UpdatedAt  = DateTime.Now;

                        _dbContext.ServiceCategories.Attach(group);

                        _dbContext.Entry(group).State = EntityState.Modified;

                        await _dbContext.SaveChangesAsync();

                        if (model.ImageUpload != null)
                        {
                            var(newName, thumbName, dirPath, baseUrl) = _uploadService.GenerateServiceCategoryLogoName(group.Id, model.ImageUpload);

                            group.Photo = $"{baseUrl}/{thumbName}";

                            _dbContext.ServiceCategories.Attach(group);

                            _dbContext.Entry(group).State = EntityState.Modified;

                            await _dbContext.SaveChangesAsync();

                            await _uploadService.UploadServiceCategoryLogoAsync(model.ImageUpload, dirPath, newName, thumbName);
                        }
                    }
                    else
                    {
                        var group = new ServiceCategory
                        {
                            Name       = model.Name,
                            Name_Ku    = model.Name_Ku,
                            Name_Ar    = model.Name_Ar,
                            CenterType = model.CenterType,
                            CreatedAt  = DateTime.Now,
                        };

                        await _dbContext.ServiceCategories.AddAsync(group);

                        await _dbContext.SaveChangesAsync();

                        var(newName, thumbName, dirPath, baseUrl) = _uploadService.GenerateServiceCategoryLogoName(group.Id, model.ImageUpload);

                        group.Photo = $"{baseUrl}/{thumbName}";

                        _dbContext.ServiceCategories.Attach(group);

                        _dbContext.Entry(group).State = EntityState.Modified;

                        await _dbContext.SaveChangesAsync();

                        await _uploadService.UploadServiceCategoryLogoAsync(model.ImageUpload, dirPath, newName, thumbName);
                    }

                    transaction.Commit();
                }
            });

            return(Json(new { success = true, message }));
        }