Ejemplo n.º 1
0
        public IActionResult Index(int?id, string searchText, int?status)
        {
            BlogCategoryList list = new BlogCategoryList();

            list = GetBlogCategory(id, searchText, status);
            return(View(list));
        }
Ejemplo n.º 2
0
        public BlogCategoryList GetBlogCategory(int?page, string searchText, int?status)
        {
            int pageSize = 3;
            int pageNo   = page == null ? 1 : Convert.ToInt32(page);
            var context  = new CMSContext();
            var param    = new SqlParameter[] {
                new SqlParameter()
                {
                    ParameterName = "@PageNo",
                    SqlDbType     = System.Data.SqlDbType.Int,
                    Direction     = System.Data.ParameterDirection.Input,
                    Value         = pageNo
                },
                new SqlParameter()
                {
                    ParameterName = "@Name",
                    SqlDbType     = System.Data.SqlDbType.VarChar,
                    Direction     = System.Data.ParameterDirection.Input,
                    Size          = 100,
                    Value         = searchText ?? (object)DBNull.Value
                },
                new SqlParameter()
                {
                    ParameterName = "@PageSize",
                    SqlDbType     = System.Data.SqlDbType.Int,
                    Direction     = System.Data.ParameterDirection.Input,
                    Value         = pageSize
                },
                new SqlParameter()
                {
                    ParameterName = "@Status",
                    SqlDbType     = System.Data.SqlDbType.Int,
                    Direction     = System.Data.ParameterDirection.Input,
                    Value         = status ?? (object)DBNull.Value
                }
            };
            //var student3 = context.BlogCategory.FromSql("[dbo].[sp_GetBlogCategoryWithPaging] @PageNo, @Name, @PageSize, @Status", param);

            BlogCategoryList bcList = new BlogCategoryList();

            using (var cnn = context.Database.GetDbConnection())
            {
                var cmm = cnn.CreateCommand();
                cmm.CommandType = System.Data.CommandType.StoredProcedure;
                cmm.CommandText = "[dbo].[sp_GetBlogCategoryWithPaging]";
                cmm.Parameters.AddRange(param);
                cmm.Connection = cnn;
                cnn.Open();
                var reader = cmm.ExecuteReader();

                List <BlogCategory> list       = new List <BlogCategory>();
                PagingInfo          pagingInfo = new PagingInfo();
                //while (reader.HasRows)
                //{
                while (reader.Read())
                {
                    BlogCategory blogCategory = new BlogCategory();
                    blogCategory.Id              = Convert.ToInt32(reader["Id"]);
                    blogCategory.ParentId        = reader["ParentId"] == DBNull.Value ? null : (Int32?)Convert.ToInt32(reader["ParentId"]);
                    blogCategory.Name            = Convert.ToString(reader["Name"]);
                    blogCategory.Url             = Convert.ToString(reader["Url"]);
                    blogCategory.MetaTitle       = Convert.ToString(reader["MetaTitle"]);
                    blogCategory.MetaKeyword     = Convert.ToString(reader["MetaKeyword"]);
                    blogCategory.MetaDescription = Convert.ToString(reader["MetaDescription"]);
                    blogCategory.Description     = Convert.ToString(reader["Description"]);
                    blogCategory.AddedOn         = Convert.ToDateTime(reader["AddedOn"]);
                    blogCategory.Status          = Convert.ToBoolean(reader["Status"]);
                    list.Add(blogCategory);
                }
                reader.NextResult();
                while (reader.Read())
                {
                    pagingInfo.CurrentPage  = pageNo;
                    pagingInfo.TotalItems   = Convert.ToInt32(reader["Total"]);
                    pagingInfo.ItemsPerPage = pageSize;

                    bcList.blogCategory  = list;
                    bcList.allTotal      = Convert.ToInt32(reader["AllTotalPage"]);
                    bcList.activeTotal   = Convert.ToInt32(reader["ActiveTotalPage"]);
                    bcList.inactiveTotal = Convert.ToInt32(reader["InActiveTotalPage"]);
                    bcList.searchText    = searchText;
                    bcList.status        = status;
                    bcList.pagingInfo    = pagingInfo;
                }
                //}
            }
            return(bcList);
        }
Ejemplo n.º 3
0
        public async Task <ActionResult <string> > UpdateBlog([FromForm] BlogUpdateDto blog)
        {
            var user = await GetCurrentUserAsync(HttpContext.User);

            if (user == null)
            {
                return(Unauthorized(new ApiResponse(401)));
            }

            // check id Blog existing
            var _blog = await _context.Blog.FindAsync(blog.Id);

            if (_blog == null)
            {
                return(NotFound(new ApiResponse(404)));
            }

            //check id category existing, example: Convert string "[1, 2, 3]" to int list
            List <int> _categoriesIds = blog.Categories.Trim('[', ']').Split(',').Select(int.Parse).ToList();

            foreach (var id in _categoriesIds)
            {
                var category = await _context.BlogCategory.FindAsync(id);

                if (category == null)
                {
                    return(NotFound(new ApiResponse(404, "Category Id:" + id + ", Not exist!")));
                }
            }

            // check the Permission
            var permission = await PermissionsManagement(user, _blog);

            if (!permission)
            {
                return(BadRequest(new ApiResponse(400, "current User doesn't has a permation to update this blog")));
            }

            try
            {
                // return Blog class (_blog)
                _mapper.Map(blog, _blog);
                _context.Entry(_blog).State = EntityState.Modified;
                await _context.SaveChangesAsync();

                // update Bog's Categories after delete old categories
                var oldCats = await _context.BlogCategoryList.Where(c => c.BlogId == _blog.Id).ToArrayAsync();

                foreach (var oldCat in oldCats)
                {
                    _context.Remove(oldCat);
                }

                await _context.SaveChangesAsync();

                // Add new Categories
                foreach (var id in _categoriesIds)
                {
                    var newCat = new BlogCategoryList
                    {
                        BlogId         = _blog.Id,
                        BlogCategoryId = id
                    };
                    await _context.BlogCategoryList.AddAsync(newCat);
                }
                await _context.SaveChangesAsync();

                return(Ok($"Update Blog Successfully"));
            }
            catch (Exception ex)
            {
                return(BadRequest(new ApiResponse(400, $"Error: {ex.Message}")));
            }
        }
Ejemplo n.º 4
0
        public static async Task AddSeedBlogs(IServiceProvider services)
        {
            var context = services.GetRequiredService <AppDbContext>();

            Random random = new Random();

            int[] blogCat = { 1, 1, 1, 2, 2, 3, 3, 3, 6, 6, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4 };

            string[] bodyAr =
            {
                "طبق شهي و لذيذ شكله جميل يمكن تحضيره من الخضار المتواجدة دائما في المطبخ العربي",
                " المقبلات أو المشهيات أو المزة (في الشام) أو المفتحات (في تونس) هي مادة غذائية من الخضار أو الفاكهة تكون مطبوخا أو مخللا أو مفرومًا وعادة ما يُستخدم كـتوابل خصوصًا لتجميل الطبق الرئيسي. ",
                "المخلل من التخليل (خلّله) أي وضعه في مادة تخلّله فالخيار مثلاً ينقع في الماء والملح في إناء مضغوط ومسحوب منه الهواء لفترة أسبوع",

                "ختبر الإنسانُ السَّفر منذ بداية وجوده على المعمورة، حيث كان مضطرًّا للتنقُّل بحثًا عن الماء والطَّعام، ثمَّ استمرَّ في ذلك بعد أنْ أصبح في غنيةٍ عن مشقَّة الطَّريق، فقد فطرتِ النَّفس البشريَّة",
                "إيجابيات السَّفر وسلبياته والمشاعر يحكمها طبع الإنسان من جهةٍ وطبيعة سفره وحاله من جهةٍ أخرى؛ فمن خبر محاسن الغربة ووجد فيها ملاذًا مطمئنًا له",

                "فيروز مغنية لبنانية. اسمها الحقيقي «نهاد رزق وديع حداد»، ولدت في نوفمبر من سنة 1935 في حي يسمى 《زقاق البلاط》 في بيروت، قدمت العديد من الأغاني والأوبريهات",
                "ليلى مراد مغنية وممثلة مصرية، تعتبر من أبرز المغنيات والممثلات في الوطن العربي في القرن العشرين. بدأت مشوارها مع الغناء في سن أربعة عشر عامًا",
                "سيد درويش مغني وملحن مصري اسمه الحقيقي السيد درويش البحر هو مجدد الموسيقى وباعث النهضة[؟] الموسيقية في مصر والوطن العربي. بدأ ينشد مع أصدقائه ألحان الشيخ",

                "لألعاب الأولمبية الصيفية ، أو ألعاب الأولمبياد الصيفية ، هي حدث رياضي يقام كل أربع سنوات لممارسة الألعاب الأولمبية",
                " ليبرون جيمس حل أولاً بين لاعبي NBA وفي المركز الثاني عامة بعد كريستيانو رونالدو نجم الريال الذي تصدّر القائمة. في حين حلّ كيفن دورانت في المركز الثامن.",

                "وعرف اللياقة البدنية Clarke، 1976 على أنها القدرة على القيام بالأعباء اليومية بقوة ووعي وبدون تعب لا مبرر له من توافر قدر كاف ممن الطاقة",
                "هي السمات البدنية التي على الفرد تحقيقها للقيام بالأعمال اليومية الاعتيادية بأفضل كفاءة دون الشعور بالتعب والإرهاق الشديد. هي الأعمال اليومية على بساطتها، لكنها قد تزداد تعقيدا لتشمل الرياضات التنافسية والنشاطات الأكثر صعوبة.",
                "المرونة هي قدرة المفصل على الحركة لأبعد مدى ضمن نطاق حركته! ومن الأمثلة على التمارين التي تحسن المرونة تمارين اليوغا وشد الجسم. مثلاً، قم بوضع قدميك على الأرض مع جعل مسافة بينهما",

                "المِرِّيخ أو الكوكب الأحمر هو الكوكب الرابع من حيث البعد عن الشمس في النظام الشمسي وهو الجار الخارجي للأرض ويصنف كوكبا صخريا",
                "مذبحة القلعة، أو مذبحة المماليك هي حادثة تاريخيَّة وقعت في ولاية مصر العثمانية دبرها محمد علي باشا للتخلص من أعدائه المماليك يوم الجمعة 5 صفر سنة 1226 هـ الموافق 1 مارس",
                "اعتقلت الولايات المتحدة الأمريكية أكثر من 779 معتقلاً إدارياً خارج نطاق القضاء في معتقل غوانتانامو الأمريكي في كوبا منذ فتح معسكرات الاعتقال في 11 يناير 2002",
                "الحركة الثقافية هي كل تغيير في طريقة التفكير والاعتقادات السائدة بخصوص مجموعة من القضايا الثقافية ذات العلاقة بنواحٍ وفروع معينة، مما يترتب عليه تغيير في طريقة مقاربة ومعالجة العمل",
                "الهندسة التطبيقية تعني تطبيق العلم لتوفير الحاجات الإنسانية. وذلك من خلال تطبيق العلوم النظرية والتطبيقية: الفيزياء، الكيمياء، الرياضيات، والأحياء.",
                "الإنسان الآلي أوالروبوت (بالإنجليزية: Robot)‏ عبارة عن أداة ميكانيكية قادرة على القيام بفعاليات مبرمجة سلفا ويقوم الإنسان الآلي بإنجاز تلك الفعاليات",
                "إمحوتب هو بانى هرم زوسر المدرج وهو أول مهندس معمارى ، وأحد أشهر المهندسين في مصر القديمة ، رفع إلى درجة معبود بعد وفاتة وأصبح إله الطب ."
            };

            string[] bodyDe =
            {
                "Ein köstliches und köstliches Gericht mit einer schönen Form, das aus dem Gemüse zubereitet werden kann, das in der arabischen Küche immer vorhanden ist",
                "Vorspeisen, Vorspeisen, Mezze (in der Levante) oder Moftahat (in Tunesien) ist ein Lebensmittel aus Gemüse oder Obst, das gekocht, eingelegt oder gehackt wird. Es wird normalerweise als Gewürz verwendet, insbesondere um das Hauptgericht zu verschönern.",
                "Die Gurke wird aus Beizen (Beizen) hergestellt, dh in eine Substanz gegeben, die damit gemischt ist. Die Gurke wird beispielsweise in einem Druckbehälter, der eine Woche lang Luft daraus zieht, in Wasser und Salz eingeweicht.",

                "Der Mensch erlebte Reisen von Beginn seiner Existenz auf dem Planeten an, als er gezwungen war, sich auf der Suche nach Wasser und Nahrung zu bewegen, und fuhr dann damit fort, nachdem er von den Strapazen der Straße reich geworden war, als die menschliche Seele unerträglich wurde.",
                "Die positiven und negativen Aspekte des Reisens und der Gefühle werden einerseits von der Natur eines Menschen und andererseits von der Art seiner Reise und seinem Zustand bestimmt. Aus den Nachrichten über die Vorteile der Entfremdung fand er darin einen beruhigenden Zufluchtsort für ihn.",

                "Fairouz ist eine libanesische Sängerin. Ihr richtiger Name ist  Nihad Rizk Wadih Haddad  . Sie wurde im November 1935 in einem Viertel namens Zuqaq El Blat in Beirut geboren. Sie spielte viele Lieder und Opern.",
                "Laila Murad ist eine ägyptische Sängerin und Schauspielerin. Sie gilt im 20. Jahrhundert als eine der bekanntesten Sängerinnen und Schauspielerinnen der arabischen Welt. Sie begann ihre Gesangskarriere im Alter von vierzehn Jahren.",
                "Sayed Darwish ist ein ägyptischer Sänger und Komponist, dessen richtiger Name Herr Darwish Al-Bahr ist. Er ist der Erneuerer der Musik und der Katalysator für die musikalische Renaissance [?] In Ägypten und der arabischen Welt.",

                "Die Olympischen Sommerspiele oder die Olympischen Sommerspiele sind ein Sportereignis, das alle vier Jahre für die Olympischen Spiele stattfindet.",
                "LeBron James wurde Erster unter den NBA-Spielern und im Allgemeinen Zweiter nach Cristiano Ronaldo, dem Star von Real Madrid, der die Liste anführte, während Kevin Durant Achter wurde.",

                "Er definierte Fitness von Clarke, 1976, als die Fähigkeit, tägliche Aufgaben mit Kraft, Bewusstsein und ohne übermäßige Müdigkeit aufgrund der Verfügbarkeit ausreichender Energie auszuführen.",
                "Sie sind die physischen Merkmale, die ein Individuum erreichen muss, um normale tägliche Aufgaben mit der besten Effizienz zu erledigen, ohne sich müde und erschöpft zu fühlen. Die täglichen Aufgaben sind einfach, aber sie können komplexer werden, um Leistungssport und schwierigere Aktivitäten einzuschließen.",
                "Flexibilität ist die Fähigkeit des Gelenks, sich innerhalb seines Bewegungsbereichs am weitesten zu bewegen! Beispiele für Übungen, die die Flexibilität verbessern, sind Yoga-Übungen, die den Körper dehnen. Stellen Sie beispielsweise Ihre Füße mit einem Abstand zwischen ihnen auf den Boden.",

                "Der Mars oder der rote Planet ist der vierte Planet in Bezug auf die Entfernung von der Sonne im Sonnensystem und der äußerste Nachbar der Erde. Er wird als felsiger Planet klassifiziert.",
                "Das Massaker an der Burg oder das Massaker an den Mamluken ist ein historischer Vorfall in der osmanischen Provinz Ägypten, der von Muhammad Ali Pascha geplant wurde, um seine Mamluk-Feinde am Freitag, dem 5. Safar 1226 AH, entsprechend dem 1. März, loszuwerden.",
                "Die Vereinigten Staaten von Amerika haben seit der Eröffnung der Haftlager am 11. Januar 2002 mehr als 779 außergerichtliche Verwaltungshäftlinge im Haftzentrum von Guantanamo Bay in Kuba festgenommen.",
                "Die kulturelle Bewegung ist jede Änderung der Denkweise und der vorherrschenden Überzeugungen in Bezug auf eine Gruppe kultureller Probleme, die sich auf bestimmte Aspekte und Zweige beziehen, was zu einer Änderung der Art und Weise führt, wie wir mit Arbeit umgehen und sie behandeln.",
                "Angewandte Technik bedeutet, Wissenschaft anzuwenden, um die Bedürfnisse des Menschen durch Anwendung theoretischer und angewandter Wissenschaften zu erfüllen: Physik, Chemie, Mathematik und Biologie.",
                "Ein Roboter oder ein Roboter (auf Englisch: Roboter) ist ein mechanisches Werkzeug, das vorprogrammierte Aktivitäten ausführen kann, und der Roboter führt diese Aktivitäten aus.",
                "Imhotep war der Erbauer der Stufenpyramide von Djoser, dem ersten Architekten und einer der berühmtesten Ingenieure im alten Ägypten. Nach seinem Tod wurde er zum Idol erhoben und zum Gott der Medizin."
            };

            var categiryList = new List <int>();

            // 1000*20=20000 Blogs
            for (int r = 0; r < 1000; r++)
            {
                for (var i = 0; i < bodyAr.Length; i++)
                {
                    var title     = bodyDe[i].Substring(0, 15);
                    var sTitle    = bodyDe[i].Substring(0, 30);
                    var body      = bodyDe[i];
                    var lngId     = LanguageCodeId[2];
                    var publiched = true;
                    var top       = false;

                    if (i % 2 == 0)
                    {
                        title  = bodyAr[i].Substring(0, 15);
                        sTitle = bodyAr[i].Substring(0, 30);
                        body   = bodyAr[i];
                        lngId  = LanguageCodeId[1];
                    }

                    if (i % 3 == 1)
                    {
                        publiched = false;
                    }
                    // to add some of blogs  of Top of the list
                    if ((r == 10 && i == 15) || (r == 15 && i == 6) || (r == 30 && i == 18))
                    {
                        top = true;
                    }


                    var daterelase = DateTime.Now;
                    var randNum    = random.Next(1, 100);
                    if (randNum == 1)
                    {
                        daterelase = DateTime.Now;
                    }
                    else if (randNum > 1 && randNum < 10)
                    {
                        daterelase = DateTime.Now.AddDays(-5);
                    }
                    else if (randNum > 10 && randNum < 20)
                    {
                        daterelase = DateTime.Now.AddDays(-10);
                    }
                    else if (randNum > 20 && randNum < 30)
                    {
                        daterelase = DateTime.Now.AddDays(-15);
                    }
                    else if (randNum > 30 && randNum < 40)
                    {
                        daterelase = DateTime.Now.AddDays(-20);
                    }
                    else if (randNum > 40 && randNum < 50)
                    {
                        daterelase = DateTime.Now.AddDays(-25);
                    }
                    else if (randNum > 50 && randNum < 60)
                    {
                        daterelase = DateTime.Now.AddDays(-30);
                    }
                    else if (randNum > 60 && randNum < 70)
                    {
                        daterelase = DateTime.Now.AddDays(-35);
                    }
                    else if (randNum > 70 && randNum < 80)
                    {
                        daterelase = DateTime.Now.AddDays(-40);
                    }
                    else if (randNum > 80 && randNum < 90)
                    {
                        daterelase = DateTime.Now.AddDays(-45);
                    }


                    // add new Blog
                    var newBlog = new Blog
                    {
                        Title         = title,
                        ShortTitle    = sTitle,
                        Body          = body,
                        Publish       = publiched,
                        Commentable   = true,
                        AtTop         = top,
                        ReleaseDate   = daterelase,
                        LanguageId    = lngId,
                        UserId        = superAdmin_id,
                        AddedDateTime = DateTime.Now
                    };
                    categiryList.Add(blogCat[i]);

                    context.Blog.Add(newBlog);
                }
            }
            await context.SaveChangesAsync();

            // get just the last 10000 blog to add categoryies and images to save time
            var blogs = context.Blog.Where(b => b.Publish == true).OrderByDescending(b => b.ReleaseDate).Take(10000).ToList();

            // Add Blogs categories
            foreach (var blog in blogs)
            {
                var catId = random.Next(0, 7);
                var cat   = new BlogCategoryList
                {
                    BlogId         = blog.Id,
                    BlogCategoryId = categiryList[catId]
                };
                context.BlogCategoryList.Add(cat);
            }
            //await context.SaveChangesAsync();

            // Add Blogs Images, every blog has from 1 to 3 images
            var blogUpload = new List <BlogUploads>();

            foreach (var blog in blogs)
            {
                var indexImage = random.Next(1, 52);
                var repNumber  = random.Next(1, 4);
                for (int rep = 1; rep <= repNumber; rep++)
                {
                    var upload = new Upload
                    {
                        Name          = "img (" + indexImage + "_" + rep + ")",
                        Path          = "/Uploads/Images/img (" + indexImage + ").jfif",
                        AddedDateTime = DateTime.Now,
                        UserId        = superAdmin_id
                    };
                    await context.Upload.AddAsync(upload);

                    var saveBlogUplad = new BlogUploads
                    {
                        BlogId   = blog.Id,
                        UploadId = upload.Id
                    };
                    blogUpload.Add(saveBlogUplad);
                }
            }
            await context.SaveChangesAsync();

            // add images data in UploadBlogImagesList table
            var defaultImage = true;
            int blogId       = 0;

            foreach (var item in blogUpload)
            {
                if (item.BlogId != blogId)
                {
                    defaultImage = true;
                }

                var blogImage = new UploadBlogImagesList
                {
                    UploadId     = item.UploadId,
                    BlogId       = item.BlogId,
                    Default      = defaultImage,
                    UploadTypeId = 3
                };
                blogId       = item.BlogId;
                defaultImage = false;

                await context.UploadBlogImagesList.AddAsync(blogImage);
            }
            await context.SaveChangesAsync();


            // add some Like and dislike for Blogs
            var users = context.Users.ToList();

            blogs = blogs.ToList();
            foreach (var user in users)
            {
                // like/dislike number for this user
                var repeatedNum = random.Next(1, blogs.Count());
                // to be sure the blog id is not repeated for every user
                var blogIdsList = new List <int>();
                for (int i = 0; i < repeatedNum; i++)
                {
                    var like    = true;
                    var dislike = false;
                    // select random Blog
                    var randomBlog = blogs[random.Next(1, blogs.Count())];
                    // if this blog not selected before
                    if (!blogIdsList.Contains(randomBlog.Id))
                    {
                        if (random.Next(1, 5) < 2)
                        {
                            like    = false;
                            dislike = true;
                        }
                        var likeDislike = new BlogLike
                        {
                            Like          = like,
                            Dislike       = dislike,
                            AddedDateTime = DateTime.Now,
                            BlogId        = randomBlog.Id,
                            UserId        = user.Id
                        };
                        blogIdsList.Add(randomBlog.Id);
                        await context.BlogLike.AddAsync(likeDislike);

                        var comment = new BlogComment
                        {
                            AddedDateTime = DateTime.Now,
                            BlogId        = randomBlog.Id,
                            UserId        = user.Id,
                            Comment       = "Hi I'm " + user.UserName + ", random number : " + i
                        };
                        await context.BlogComment.AddAsync(comment);
                    }
                }
            }
            await context.SaveChangesAsync();
        }
Ejemplo n.º 5
0
        public async Task <ActionResult <string> > CreateBlog([FromForm] BlogCreateDto blog)
        {
            var user = await GetCurrentUserAsync(HttpContext.User);

            if (user == null)
            {
                return(Unauthorized(new ApiResponse(401)));
            }

            try
            {
                //check id category existing, example: Convert string "[1, 2, 3]" to int list
                List <int> _categoriesIds = blog.Categories.Trim('[', ']').Split(',').Select(int.Parse).ToList();
                foreach (var id in _categoriesIds)
                {
                    var category = await _context.BlogCategory.FindAsync(id);

                    if (category == null)
                    {
                        return(NotFound(new ApiResponse(404, "Category Id:" + id + ", Not exist!")));
                    }
                }

                var newBlog = _mapper.Map <BlogCreateDto, Blog>(blog);
                newBlog.UserId        = user.Id;
                newBlog.AddedDateTime = DateTime.Now;

                await _context.Blog.AddAsync(newBlog);

                await _context.SaveChangesAsync();

                // Add Categories
                foreach (var id in _categoriesIds)
                {
                    var newCat = new BlogCategoryList
                    {
                        BlogId         = newBlog.Id,
                        BlogCategoryId = id
                    };
                    await _context.BlogCategoryList.AddAsync(newCat);
                }
                await _context.SaveChangesAsync();

                var defaultImage = true;
                if (blog.Files.Count > 0)
                {
                    foreach (var img in blog.Files)
                    {
                        if (img != null && img.Length > 0)
                        {
                            // this path webHostEnvironment.WebRootPath is under wwwroot folder
                            string filePath = Path.Combine(_webHostEnvironment.WebRootPath + BLOG_IMAGE_DIRECTORY);
                            if (!Directory.Exists(filePath))
                            {
                                Directory.CreateDirectory(filePath);
                            }

                            string fileName = (Guid.NewGuid().ToString().Substring(0, 8)) + "_" + img.FileName;
                            filePath = Path.Combine(filePath, fileName);

                            using (FileStream fileStream = System.IO.File.Create(filePath))
                            {
                                img.CopyTo(fileStream);
                                fileStream.Flush();

                                var upload = new Upload
                                {
                                    Name          = fileName,
                                    Path          = BLOG_IMAGE_DIRECTORY + fileName,
                                    AddedDateTime = DateTime.Now,
                                    UserId        = user.Id
                                };
                                await _context.Upload.AddAsync(upload);

                                await _context.SaveChangesAsync();

                                var imgBlog = new UploadBlogImagesList
                                {
                                    UploadId     = upload.Id,
                                    BlogId       = newBlog.Id,
                                    UploadTypeId = 3,
                                    Default      = defaultImage
                                };
                                // to set the first image as a default image
                                defaultImage = false;

                                await _context.UploadBlogImagesList.AddAsync(imgBlog);

                                await _context.SaveChangesAsync();
                            }
                        }
                    }
                    return(Ok(new ApiResponse(201))); // Successfully Add Blog, Uploaded Image successfully.");
                }
                return(Ok("Add Blog successfully, but No File to Upload it!"));
            }
            catch (Exception ex)
            {
                return(BadRequest(new ApiResponse(400, $"Error: {ex.Message}", true,
                                                  "somthin wrong! in BlogCreate Action!", 1,
                                                  new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName(),/* Get File Name */
                                                  (new System.Diagnostics.StackFrame(0, true)).GetFileLineNumber())));
            }
        }