public ActionResult Add(KnowledgebaseViewModel knowledgebaseViewModel)
        {
            try
            {
                // ReSharper disable once JoinDeclarationAndInitializer
                // ReSharper disable once CollectionNeverQueried.Local
                var knowledgebaselist                   = new List <KnowledgebaseAttachments>();
                var knowledgebase                       = new Knowledgebase();
                var knowledgebaseDetails                = new KnowledgebaseDetails();
                var knowledgebaseAttachmentsDetails     = new KnowledgebaseAttachmentsDetails();
                var knowledgebaseAttachmentsDetailsList = new List <KnowledgebaseAttachmentsDetails>();

                if (ModelState.IsValid)
                {
                    knowledgebase.Subject                       = knowledgebaseViewModel.Subject;
                    knowledgebase.Status                        = knowledgebaseViewModel.Status;
                    knowledgebase.KnowledgebaseTypeId           = knowledgebaseViewModel.KnowledgebaseTypeId;
                    knowledgebase.CreateDate                    = DateTime.Now;
                    knowledgebase.KnowledgebaseId               = 0;
                    knowledgebase.UserId                        = Convert.ToInt32(_sessionHandler.UserId);
                    knowledgebase.CategoryId                    = knowledgebaseViewModel.CategoryId;
                    knowledgebaseDetails.Contents               = knowledgebaseViewModel.Contents;
                    knowledgebaseDetails.Keywords               = knowledgebaseViewModel.Keywords;
                    knowledgebaseDetails.KnowledgebaseDetailsId = 0;

                    for (int i = 1; i <= 3; i++)
                    {
                        var filename = "fileupload_" + Convert.ToString(i);
                        var file     = Request.Files[filename];

                        if (file != null && file.ContentLength > 0)
                        {
                            var    knowledgebaseAttachments1 = new KnowledgebaseAttachments();
                            string extension        = Path.GetExtension(file.FileName);
                            var    myUniqueFileName = String.Concat(Guid.NewGuid(), extension);
                            knowledgebaseAttachments1.AttachmentsName = myUniqueFileName;
                            knowledgebaseAttachments1.AttachmentsType = extension;

                            using (var binaryReader = new BinaryReader(file.InputStream))
                            {
                                byte[] fileSize = binaryReader.ReadBytes(file.ContentLength);
                                knowledgebaseAttachmentsDetails.AttachmentBytes = fileSize;
                            }

                            knowledgebaselist.Add(knowledgebaseAttachments1);
                            knowledgebaseAttachmentsDetailsList.Add(knowledgebaseAttachmentsDetails);
                        }
                    }

                    _knowledgebase.AddKnowledgebase(knowledgebase, knowledgebaselist, knowledgebaseDetails,
                                                    knowledgebaseAttachmentsDetailsList);
                    TempData["KnowledgebaseMessage"] = "Your Article Added Successfully";
                }

                knowledgebaseViewModel.ListofCategory          = _category.GetAllActiveSelectListItemCategory();
                knowledgebaseViewModel.ListofKnowledgebaseType = _knowledgebase.KnowledgebaseTypeList();
                return(View(knowledgebaseViewModel));
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #2
0
        public int UpdateKnowledgebase(
            Knowledgebase knowledgebase,
            KnowledgebaseDetails knowledgebaseDetails,
            List <KnowledgebaseAttachments> listknowledgebaseAttachments,
            List <KnowledgebaseAttachmentsDetails> knowledgebaseAttachmentsDetails
            )
        {
            using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnection"].ConnectionString))
            {
                con.Open();
                SqlTransaction transaction = con.BeginTransaction();
                try
                {
                    var param = new DynamicParameters();
                    param.Add("@KnowledgebaseTypeId", knowledgebase.KnowledgebaseTypeId);
                    param.Add("@Subject", knowledgebase.Subject);
                    param.Add("@Status", knowledgebase.Status);
                    param.Add("@UserId", knowledgebase.UserId);
                    param.Add("@CategoryId", knowledgebase.CategoryId);
                    param.Add("@KnowledgebaseId", knowledgebase.KnowledgebaseId);
                    var resultknowledgebase = con.Execute("Usp_UpdateKnowledgebase", param, transaction, 0, CommandType.StoredProcedure);

                    var paramknowledgebaseDetails = new DynamicParameters();
                    paramknowledgebaseDetails.Add("@Contents", knowledgebaseDetails.Contents);
                    paramknowledgebaseDetails.Add("@Keywords", knowledgebaseDetails.Keywords);
                    paramknowledgebaseDetails.Add("@KnowledgebaseId", knowledgebase.KnowledgebaseId);
                    var resultknowledgebaseDetails = con.Execute("Usp_UpdateKnowledgebaseDetails", paramknowledgebaseDetails, transaction, 0, CommandType.StoredProcedure);

                    if (listknowledgebaseAttachments != null)
                    {
                        for (var index = 0; index < listknowledgebaseAttachments.Count; index++)
                        {
                            var listkb = listknowledgebaseAttachments[index];
                            var paramknowledgebaseAttachment = new DynamicParameters();
                            paramknowledgebaseAttachment.Add("@AttachmentsName", listkb.AttachmentsName);
                            paramknowledgebaseAttachment.Add("@AttachmentsType", listkb.AttachmentsType);
                            paramknowledgebaseAttachment.Add("@KnowledgebaseId", knowledgebase.KnowledgebaseId);
                            paramknowledgebaseAttachment.Add("@KnowledgebaseAttachmentsId", dbType: DbType.Int64, direction: ParameterDirection.Output);
                            con.Execute("Usp_InsertKnowledgebaseAttachments", paramknowledgebaseAttachment, transaction, 0, CommandType.StoredProcedure);
                            long knowledgebaseAttachmentsId = paramknowledgebaseAttachment.Get <Int64>("@KnowledgebaseAttachmentsId");

                            var listofattachmentbytes = knowledgebaseAttachmentsDetails[index];
                            var paramKnowledgebaseAttachmentsDetails = new DynamicParameters();
                            paramKnowledgebaseAttachmentsDetails.Add("@AttachmentBytes", listofattachmentbytes.AttachmentBytes);
                            paramKnowledgebaseAttachmentsDetails.Add("@KnowledgebaseId", knowledgebase.KnowledgebaseId);
                            paramKnowledgebaseAttachmentsDetails.Add("@KnowledgebaseAttachmentsId", knowledgebaseAttachmentsId);

                            var resultKnowledgebaseAttachmentsDetails = con.Execute("Usp_InsertKnowledgebaseAttachmentsDetails", paramKnowledgebaseAttachmentsDetails, transaction, 0, CommandType.StoredProcedure);
                        }
                    }


                    if (resultknowledgebase > 0 && resultknowledgebaseDetails > 0)
                    {
                        transaction.Commit();
                        return(1);
                    }
                    else
                    {
                        transaction.Rollback();
                        return(0);
                    }
                }
                catch (Exception)
                {
                    transaction.Rollback();
                    throw;
                }
            }
        }
        public ActionResult Edit(EditKnowledgebaseViewModel editKnowledgebaseViewModel)
        {
            try
            {
                // ReSharper disable once JoinDeclarationAndInitializer
                // ReSharper disable once CollectionNeverQueried.Local
                var knowledgebaselist                   = new List <KnowledgebaseAttachments>();
                var knowledgebase                       = new Knowledgebase();
                var knowledgebaseDetails                = new KnowledgebaseDetails();
                var knowledgebaseAttachmentsDetails     = new KnowledgebaseAttachmentsDetails();
                var knowledgebaseAttachmentsDetailsList = new List <KnowledgebaseAttachmentsDetails>();

                if (ModelState.IsValid)
                {
                    knowledgebase.Subject             = editKnowledgebaseViewModel.Subject;
                    knowledgebase.Status              = editKnowledgebaseViewModel.Status;
                    knowledgebase.KnowledgebaseTypeId = editKnowledgebaseViewModel.KnowledgebaseTypeId;
                    knowledgebase.CreateDate          = DateTime.Now;
                    knowledgebase.UserId              = Convert.ToInt32(_sessionHandler.UserId);
                    knowledgebase.CategoryId          = editKnowledgebaseViewModel.CategoryId;
                    knowledgebase.KnowledgebaseId     = Convert.ToInt64(editKnowledgebaseViewModel.KnowledgebaseId);
                    knowledgebaseDetails.Contents     = editKnowledgebaseViewModel.Contents;
                    knowledgebaseDetails.Keywords     = editKnowledgebaseViewModel.Keywords;

                    if (Request != null && (_knowledgebase.GetKnowledgebaseAttachmentsCount(editKnowledgebaseViewModel.KnowledgebaseId) > 0 && Request.Files["fileupload_1"].ContentLength != 0 && Request.Files["fileupload_2"].ContentLength != 0 && Request.Files["fileupload_3"].ContentLength != 0))
                    {
                        ModelState.AddModelError("", "Delete Pervious uploaded Attachments for Uploading New Attachments");
                        editKnowledgebaseViewModel.ListofCategory          = _category.GetAllActiveSelectListItemCategory();
                        editKnowledgebaseViewModel.ListofKnowledgebaseType = _knowledgebase.KnowledgebaseTypeList();
                        return(View(editKnowledgebaseViewModel));
                    }
                    else
                    {
                        if ((_knowledgebase.GetKnowledgebaseAttachmentsCount(editKnowledgebaseViewModel.KnowledgebaseId) == 0))
                        {
                            for (int i = 1; i <= 3; i++)
                            {
                                var filename = "fileupload_" + Convert.ToString(i);
                                var file     = Request?.Files[filename];

                                if (file != null && file.ContentLength > 0)
                                {
                                    var    knowledgebaseAttachments1 = new KnowledgebaseAttachments();
                                    string extension        = Path.GetExtension(file.FileName);
                                    var    myUniqueFileName = String.Concat(Guid.NewGuid(), extension);
                                    knowledgebaseAttachments1.AttachmentsName = myUniqueFileName;
                                    knowledgebaseAttachments1.AttachmentsType = extension;

                                    using (var binaryReader = new BinaryReader(file.InputStream))
                                    {
                                        byte[] fileSize = binaryReader.ReadBytes(file.ContentLength);
                                        knowledgebaseAttachmentsDetails.AttachmentBytes = fileSize;
                                    }

                                    knowledgebaselist.Add(knowledgebaseAttachments1);
                                    knowledgebaseAttachmentsDetailsList.Add(knowledgebaseAttachmentsDetails);
                                }
                            }
                            _knowledgebase.UpdateKnowledgebase(knowledgebase, knowledgebaseDetails, knowledgebaselist,
                                                               knowledgebaseAttachmentsDetailsList);

                            TempData["KnowledgebaseMessage"] = "Your Article Updated Successfully";
                            return(RedirectToAction("Edit", "Knowledgebase"));
                        }

                        _knowledgebase.UpdateKnowledgebase(knowledgebase, knowledgebaseDetails, null, null);

                        TempData["KnowledgebaseMessage"] = "Your Article Updated Successfully";

                        return(RedirectToAction("Edit", "Knowledgebase", new { id = editKnowledgebaseViewModel.KnowledgebaseId }));
                    }
                }

                editKnowledgebaseViewModel.ListofCategory          = _category.GetAllActiveSelectListItemCategory();
                editKnowledgebaseViewModel.ListofKnowledgebaseType = _knowledgebase.KnowledgebaseTypeList();
                editKnowledgebaseViewModel.ListofAttachments       = _knowledgebase.GetKnowledgebaseAttachments(editKnowledgebaseViewModel.KnowledgebaseId);
                return(View(editKnowledgebaseViewModel));
            }
            catch (Exception)
            {
                throw;
            }
        }