public ActionResult Create(CreateProductViewModel viewModel, HttpPostedFileBase mainImage, IEnumerable <HttpPostedFileBase> images) { if (ModelState.IsValid) { var product = new Product(); product.Code = viewModel.Code; product.Name = viewModel.Name; product.Description = viewModel.Description; product.Price = viewModel.Price; product.Created_at = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); db.Products.Add(product); var imagesToDownload = new List <HttpPostedFileBase>(); if (mainImage != null) { string relativePathToImage = Helper.GetRelativePathForResource(mainImage.FileName); ProductImage productMainImage = Factories.ProductImageFactory.Create(product.Id, relativePathToImage, true); db.ProductImages.Add(productMainImage); imagesToDownload.Add(mainImage); } foreach (var image in images.Where(x => x != null)) { string relativePathToImage = Helper.GetRelativePathForResource(image.FileName); ProductImage productImage = Factories.ProductImageFactory.Create(product.Id, relativePathToImage, false); db.ProductImages.Add(productImage); imagesToDownload.Add(image); } //sukuriam dar viena sarasa, kad klaidos atveju zinotume, kokias nuotraukas reikia istrint var downloadedImages = new List <HttpPostedFileBase>(); try { foreach (var img in imagesToDownload) { FileWorker.DownloadImage(img); downloadedImages.Add(img); } } catch (FileDownloadException) { foreach (var img in downloadedImages) { string relativePathToImage = Helper.GetRelativePathForResource(img.FileName); FileWorker.DeleteFile(relativePathToImage); } ModelState.AddModelError("Error", "Klaida išsaugant paveikslėlį."); return(View(viewModel)); } try { db.SaveChanges(); } catch (System.Data.Entity.Infrastructure.DbUpdateException) { ModelState.AddModelError("Error", "Prekė su tokiu kodu jau egzistuoja."); return(View(viewModel)); } catch (Exception ex) { ModelState.AddModelError("Error", ex); return(View(viewModel)); } return(RedirectToAction("GetProductsListForAdmin", new { isPartial = false, query = "", currentPage = 1 })); } return(View(viewModel)); }
private void SaveFile() { var dialog = new SaveFileDialog { Filter = "Views (*.csv)|*.csv" }; if (dialog.ShowDialog() == true) { var constraints = new List <Constraint>(); int i = 0; foreach (var item in ConstraintItems) { constraints.Add(new Constraint(i, item.SelectedVariable1, item.SelectedComparator, item.SelectedVariable2)); i++; } var fileName = dialog.FileName; if (File.Exists(fileName)) { FileWorker.DeleteFile(fileName); } var file = FileWorker.GetInstance(fileName, true); var max = _allVariables.Count; if (_allDomains.Count > max) { max = _allDomains.Count; } if (constraints.Count > max) { max = constraints.Count; } for (i = 0; i < max; i++) { var builder = new StringBuilder(); if (_allVariables.Count > i) { builder.Append(_allVariables[i].Name); } builder.Append(";"); if (_allDomains.Count > i) { builder.Append(_allDomains[i].Name); } builder.Append(";"); if (constraints.Count > i) { builder.Append(constraints[i].X.Name); builder.Append(";"); builder.Append(constraints[i].Comparator); builder.Append(";"); builder.Append(constraints[i].Y.Name); builder.Append(";"); } else { builder.Append(";;;"); } if (i == 0) { builder.Append(IsPairwiseDisjunct); } file.WriteLine(builder.ToString()); } } }
static void Main(string[] args) { var dir = FileWorker.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly( ).Location); _logger = new Logger( ); _logger.Open(string.Format(@"{0}\log\{1}.log", dir, DateTime.Now.ToString("yyyy'-'MM'-'dd"))); _logger.Write("------------------------------"); _logger.Write("Opening..."); Arguments arguments = GetArguments(args); if (arguments == null) { Exit( ); return; } if (string.IsNullOrEmpty(arguments.email) || string.IsNullOrEmpty(arguments.web)) { PrintCommand( ); Exit( ); return; } if (Environment.UserInteractive) { SetConsoleCtrlHandler(new HandlerRoutine(ConsoleCtrlCheck), true); Console.WriteLine("CTRL+C,CTRL+BREAK or suppress the application to exit"); } Thread th = new Thread(() => { Task.Run(async( ) => { try { //6:10 AM 9/14/2018 Rajib //IConfig config = AcmeWrapper.GetConfig( "*****@*****.**" ); //IAcmeWrapper acmeWrapper = new AcmeWrapper( config, "*.tripecosys.com", CancellationToken.None ); IConfig config = AcmeWrapper.GetConfig(email: arguments.email, dir: dir); if (config == null) { _logger.Write(string.Format("No config found for email==>{0}", arguments.email)); goto EXIT; } using (IAcmeWrapper acmeWrapper = new AcmeWrapper(config: config, web: arguments.web, acmeApiServer: arguments.acmeApiServer ?? AcmeWrapper.DefaultAcmeApiServer, logger: _logger, ct: _cancellationTokenSource.Token)) { X509Certificate2 cert = null; IIISWrapper iISWrapper = new IISWrapper( ); if (arguments.forceRenew == false) { _logger.Write("Check if valid Certificate exists for {0}", acmeWrapper.domain.ZoneName); if (acmeWrapper.ExistsCertificate( )) { ICertificate cer = acmeWrapper.GetCertificate( ); if (!cer.isExpired && cer.status) { var(status, resp) = acmeWrapper.IsValidConfig(logging: true); if (!status) { goto EXIT; } cert = cer.Cert; _logger.Write("A valid Certificate found for {0}; Cert Serial:: {1}", acmeWrapper.domain.ZoneName, cert.SerialNumber); } } } if (cert == null) { IOrderResult orderResult = await acmeWrapper.CreateOrRenewCert(forceRenew: arguments.forceRenew, rec: acmeWrapper.MAX_TRY); if (orderResult.success != true) { goto EXIT; } if (orderResult.taskType == TaskType.DOWNLOAD_CERT) { ICertificate certificate = await acmeWrapper.CreateCertificate( ); if (certificate.status == false) { goto EXIT; } cert = certificate.Cert; if (!iISWrapper.InstallCertificate(certificate: cert, zoneName: acmeWrapper.domain.ZoneName, oldCertificate: orderResult.oldCertificate, storeName: StoreName.My, logger: _logger)) { goto EXIT; } } else if (orderResult.taskType == TaskType.INSTALL_CERT) { cert = orderResult.oldCertificate; if (!iISWrapper.InstallCertificate(certificate: cert, zoneName: acmeWrapper.domain.ZoneName, storeName: StoreName.My, logger: _logger)) { goto EXIT; } } else { goto EXIT; } orderResult = null; } else { if (!iISWrapper.InstallCertificate(certificate: cert, zoneName: acmeWrapper.domain.ZoneName, storeName: StoreName.My, logger: _logger)) { goto EXIT; } } _logger.Write("Bind Certificate for {0}", acmeWrapper.domain.ZoneName); IIISWrapperResponse iSWrapperResponse = iISWrapper.BindCertificate(iISSettings: new IISWrapperSettings { SiteName = acmeWrapper.domain.ZoneName, CertificateStoreName = "My", AppPool = acmeWrapper.domain.IISSettings.AppPool, CertificateHash = cert.GetCertHash( ), Site = acmeWrapper.domain.IISSettings.Site, ZoneName = acmeWrapper.domain.ZoneName }, logger: _logger); if (iSWrapperResponse.Error) { goto EXIT; } _logger.Write("Certificate process completed for {0}", acmeWrapper.domain.ZoneName); IWinConfig winConfig = acmeWrapper.gConfig.winConfig; string batAbsolute = string.Concat(acmeWrapper.domainDir, "ScheduleRunner.bat"); if (FileWorker.ExistsFile(batAbsolute)) { FileWorker.DeleteFile(batAbsolute); } _logger.Write("Creating .bat file for Schedule runner for {0}", acmeWrapper.domain.ZoneName); string bat = string.Format("rem Auto Generated on {0}\r\n", DateTime.Now.ToString( )); bat += string.Format("dotnet LetsEncryptWrapper.dll -e {0} -w {1} -fr Y", config.Email, acmeWrapper.domain.DomainName); FileWorker.WriteFile(bat, batAbsolute); _logger.Write(".bat file creation completed for Schedule runner for {0}", acmeWrapper.domain.ZoneName); _logger.Write("Register new Task Schedule for Renew the Certificate for {0}", acmeWrapper.domain.ZoneName); TaskSchedule.Create(settings: new ScheduleSettings { TaskName = string.Format(@"\LetsEncryptWrapper\SSL\{0}", acmeWrapper.domain.ZoneName), TriggerDateTime = cert.NotAfter, /**DateTime.Now.AddDays( 1 ),*/ Description = string.Format("Register new Task Schedule for Renew the Certificate for {0}; Cert Serail::{1}", acmeWrapper.domain.ZoneName, cert.SerialNumber), ActionPath = batAbsolute, //@"dotnet LetsEncryptWrapper.dll", Arguments = null, //string.Format( "-e {0} -w {1} -fy Y", config.Email, acmeWrapper.domain.DomainName ), UserName = winConfig.WinUser, Password = winConfig.WinPassword, StartIn = dir }, logger: _logger); _logger.Write("Task Schedule Registration completed for {0}", acmeWrapper.domain.ZoneName); } goto EXIT; } catch (Exception e) { _logger.Write(e.Message); _logger.Write(e.StackTrace); goto EXIT; } EXIT: //_logger.GetCurLog( ); //Send Confirmation Exit( ); }).Wait( ); }); th.SetApartmentState(ApartmentState.STA); th.Start( ); do { Thread.Sleep(1000); } while (!_cancellationTokenSource.IsCancellationRequested); th.Join( ); Environment.Exit(Environment.ExitCode); return; }