コード例 #1
0
 public static void EditCreator(CreatorMVCModel model)
 {
     using (IDbConnection cnn = new SqlConnection(GlobalConfig.CnnString()))
     {
         if (model != null)
         {
             List <CreatorMVCModel> creators = LoadCreators();
             if (creators.Where(x => x.Id == model.Id).FirstOrDefault() != null)
             {
                 var obj = new
                 {
                     EmailAddress = model.EmailAddress,
                     LastName     = model.LastName,
                     Name         = model.Name,
                     PhoneNumber  = model.PhoneNumber,
                     Id           = model.Id
                 };
                 cnn.Execute("UPDATE Creators SET " +
                             "EmailAddress = @EmailAddress, LastName = @LastName, " +
                             "Name = @Name, PhoneNumber = @PhoneNumber " +
                             "WHERE Id = @Id", obj);
             }
         }
     }
 }
コード例 #2
0
 public static CommissionCreatorModel ConvertToCommissionCreatorModel(this CreatorMVCModel model)
 {
     if (model == null)
     {
         return(new CommissionCreatorModel());
     }
     return(new CommissionCreatorModel(model.Name, model.LastName, model.PhoneNumber, model.EmailAddress));
 }
コード例 #3
0
        // GET: Creators/Delete/5
        public ActionResult Delete(int id)
        {
            CreatorMVCModel model = SQLiteDataAccess.LoadCreators().Where(x => x.Id == id).FirstOrDefault();

            if (model != null)
            {
                return(View(model));
            }
            return(RedirectToAction("Index"));
        }
コード例 #4
0
 public static void RemoveCreator(CreatorMVCModel model)
 {
     using (IDbConnection cnn = new SqlConnection(GlobalConfig.CnnString()))
     {
         if (model != null)
         {
             List <CreatorMVCModel> creators = LoadCreators();
             if (creators.Where(x => x.Id == model.Id).FirstOrDefault() != null)
             {
                 cnn.Execute($"DELETE FROM Creators WHERE Id = {model.Id}");
             }
         }
     }
 }
コード例 #5
0
 public ActionResult Delete(int id, CreatorMVCModel model)
 {
     try
     {
         if (model != null)
         {
             SQLiteDataAccess.RemoveCreator(model);
         }
         return(RedirectToAction("Index"));
     }
     catch
     {
         return(View());
     }
 }
コード例 #6
0
 public ActionResult Edit(int id, CreatorMVCModel model)
 {
     try
     {
         if (ModelState.IsValid)
         {
             SQLiteDataAccess.EditCreator(model);
         }
         return(RedirectToAction("Index"));
     }
     catch
     {
         return(View());
     }
 }
コード例 #7
0
 public ActionResult Create(CreatorMVCModel creator)
 {
     try
     {
         if (ModelState.IsValid)
         {
             SQLiteDataAccess.SaveCreator(creator);
         }
         return(RedirectToAction("Index"));
     }
     catch
     {
         return(RedirectToAction("Create"));
     }
 }
コード例 #8
0
        private CreatorMVCModel GetCreatorInformation(CreatorMVCModel commissionCreator, int selectedCreator)
        {
            CreatorMVCModel        result   = new CreatorMVCModel();
            List <CreatorMVCModel> creators = SQLiteDataAccess.LoadCreators();

            // Gets created creator information, and save him to DB
            if (commissionCreator.Name != null && commissionCreator.Name.Length > 0)
            {
                SQLiteDataAccess.SaveCreator(commissionCreator);
                result = commissionCreator;
            }
            // Load selected creator
            else
            {
                result = creators.Where(x => x.Id == selectedCreator).FirstOrDefault();
            }
            return(result);
        }
コード例 #9
0
 public static void SaveCreator(CreatorMVCModel commissionCreator)
 {
     using (IDbConnection cnn = new SqlConnection(GlobalConfig.CnnString()))
     {
         if (commissionCreator != null)
         {
             var obj = new
             {
                 Name         = commissionCreator.Name,
                 LastName     = commissionCreator.LastName,
                 PhoneNumber  = commissionCreator.PhoneNumber,
                 EmailAddress = commissionCreator.EmailAddress
             };
             cnn.Execute("insert into Creators (Name, LastName, PhoneNumber, EmailAddress)" +
                         " values (@Name, @LastName, @PhoneNumber, @EmailAddress)", obj);
             commissionCreator.Id = cnn.Query <int>("select Id from Creators").OrderBy(x => x).Last();
         }
     }
 }
コード例 #10
0
        public ActionResult Create(CommissionMVCCreateModel commissionModel)
        {
            try
            {
                string zipFolderPath  = $"{ Server.MapPath("~") }GeneratedZips";
                string docsFolderPath = $"{ Server.MapPath("~") }GeneratedDocuments";

                string documentsStorageFolder = Server.MapPath("~") + "GeneratedDocuments\\";
                string zipPath = $"{ Server.MapPath("~") }GeneratedZips\\result.zip";

                string uploadsFolderPath    = $"{ Server.MapPath("~") }Uploads";
                string uploadsStorageFolder = $"{uploadsFolderPath}\\";

                if (!Directory.Exists(uploadsFolderPath))
                {
                    Directory.CreateDirectory(uploadsFolderPath);
                }



                if (!Directory.Exists(docsFolderPath))
                {
                    Directory.CreateDirectory(docsFolderPath);
                }
                if (!Directory.Exists(zipFolderPath))
                {
                    Directory.CreateDirectory(zipFolderPath);
                }

                // Get Company information
                CompanyMVCModel documentCompany = GetCompanyInformation(commissionModel.CreationCompany, commissionModel.SelectedCompany);

                //Get Clients information
                List <ClientMVCModel> documentClients = GetClientsInformation(commissionModel.CreationClient, commissionModel.SelectedClients);


                //Get Products information
                List <ItemMVCModel> documentProducts = GetProductsInformation(commissionModel.SelectedProducts, commissionModel.ProductPrices, commissionModel.ProductQuantities);


                //Get Creator information
                CreatorMVCModel documentCreator = GetCreatorInformation(commissionModel.CommissionCreator, commissionModel.SelectedCreator);

                if (documentCompany == null || documentClients.Count == 0 || documentProducts.Count == 0 || documentCreator == null)
                {
                    return(RedirectToAction("Create", "Commission"));
                }


                string fileName;
                // Saving uploaded file
                if (commissionModel.PostedFile != null)
                {
                    fileName = Path.GetFileName(commissionModel.PostedFile.FileName);
                    commissionModel.PostedFile.SaveAs(Server.MapPath("~") + "Uploads\\" + fileName);
                }

                if (documentClients.Count > 1)
                {
                    foreach (var item in documentClients)
                    {
                        PersonalData personalData = new PersonalData(documentCompany.ConvertToCompanyModel(), item.ConvertToClientModel(), documentCreator.ConvertToCommissionCreatorModel());

                        string path = $"{documentsStorageFolder}{ documentCompany.CompanyName }_{ item.FullName.Replace("\"", "") }_{ DateTime.Today.ToShortDateString() }.docx";
                        path.Trim();
                        if (commissionModel.PostedFile != null)
                        {
                            DocumentHelper.GenerateDocumentFromTemplate($"{Server.MapPath("~")}\\Uploads\\{Path.GetFileName(commissionModel.PostedFile.FileName)}",
                                                                        path, personalData, documentProducts.ConvertToItemModel(), true);
                        }
                        else
                        {
                            DocumentHelper.GenerateNewDocument(path,
                                                               personalData, documentProducts.ConvertToItemModel());
                        }
                    }

                    ZipFile.CreateFromDirectory(docsFolderPath, zipPath);

                    // Append headers
                    Response.AppendHeader("content-disposition", $"attachment; filename={ documentCompany.CompanyName }_{ DateTime.Today.ToShortDateString() }.zip");
                    // Open/Save dialog
                    Response.ContentType = "application/octet-stream";
                    // Push it!
                    Response.TransmitFile(zipPath);
                    Response.End();
                }
                else
                {
                    PersonalData personalData = new PersonalData(documentCompany.ConvertToCompanyModel(), documentClients.First().ConvertToClientModel(), documentCreator.ConvertToCommissionCreatorModel());
                    string       path         = $"{documentsStorageFolder}{ documentCompany.CompanyName }_{ documentClients.First().FullName.Replace("\"", "") }_{ DateTime.Today.ToShortDateString() }.docx";

                    path.Trim();
                    if (commissionModel.PostedFile != null)
                    {
                        DocumentHelper.GenerateDocumentFromTemplate(uploadsStorageFolder + Path.GetFileName(commissionModel.PostedFile.FileName),
                                                                    path, personalData, documentProducts.ConvertToItemModel(), true);
                    }
                    else
                    {
                        DocumentHelper.GenerateNewDocument(path,
                                                           personalData, documentProducts.ConvertToItemModel());
                    }
                    // Append headers
                    Response.AppendHeader("content-disposition", $"attachment; filename={ documentCompany.CompanyName }_{ documentClients.First().FullName.Replace("\"", "") }_{ DateTime.Today.ToShortDateString() }.docx");
                    // Open/Save dialog
                    Response.ContentType = "application/octet-stream";
                    // Push it!
                    Response.TransmitFile(path);
                    Response.End();
                }



                DeleteFiles();



                return(RedirectToAction("Index", "Home"));
            }
            catch (Exception e)
            {
                DeleteFiles();
                string msg = e.Message;

                return(RedirectToAction("Create", "Commission"));
            }
        }
コード例 #11
0
        // GET: Creators/Create
        public ActionResult Create()
        {
            CreatorMVCModel creator = new CreatorMVCModel();

            return(View(creator));
        }