// GET: Orders public ActionResult Index() { IEnumerable <Lib.Customer> customers = CRepo.GetCustomers(); IEnumerable <Lib.Store> stores = SRepo.GetStores(); IEnumerable <Lib.Products> products = PRepo.GetProducts(); IEnumerable <Lib.Order> orders = ORepo.GetOrders(); var viewModels = orders.Select(o => new Orders { OrderId = o.OrderId, StoreId = o.StoreId, CustomerId = o.CustomerId, DatePurchased = o.DatePurchased, Total = o.Total, StoreName = stores.Single(s => s.Id == o.StoreId).Name, FirstName = customers.Single(c => c.Id == o.CustomerId).FirstName, LastName = customers.Single(c => c.Id == o.CustomerId).LastName, FullName = customers.Single(c => c.Id == o.CustomerId).FirstName + " " + customers.Single(c => c.Id == o.CustomerId).LastName }).ToList(); decimal?totalSum = 0; decimal?maxNum = viewModels.Any() ? viewModels.Max(ma => ma.Total) : 0; decimal?minNum = viewModels.Any() ? viewModels.Min(ma => ma.Total) : 0; foreach (var item in viewModels) { totalSum += item.Total; } ViewBag.totalSum = totalSum; ViewBag.averageSum = totalSum / viewModels.Count(); ViewBag.maxNum = maxNum; ViewBag.minNum = minNum; return(View(viewModels)); }
// GET: Orders/Details/5 public ActionResult Details(int id) { IEnumerable <Lib.Customer> customers = CRepo.GetCustomers(); IEnumerable <Lib.Store> stores = SRepo.GetStores(); IEnumerable <Lib.Order> orders = ORepo.GetOrders(); List <Lib.OrderList> orderLists = ORepo.GetOrderLists(id).OrderBy(o => o.OrderId).ToList(); List <Lib.Products> products = PRepo.GetProducts().OrderBy(p => p.ItemId).ToList(); Lib.Order order = ORepo.GetOrderByOrderId(id); var viewModels = orders.Select(o => new Orders { OrderId = o.OrderId, StoreId = o.StoreId, CustomerId = o.CustomerId, DatePurchased = o.DatePurchased, Total = o.Total, //double total = db.tblCustomerOrders.Where(x => x.CustomerID == customer.CustomerID).Select(t => t.Amount ?? 0).Sum(); StoreName = stores.Single(s => s.Id == o.StoreId).Name, FirstName = customers.Single(c => c.Id == o.CustomerId).FirstName, LastName = customers.Single(c => c.Id == o.CustomerId).LastName, FullName = customers.Single(c => c.Id == o.CustomerId).FirstName + " " + customers.Single(c => c.Id == o.CustomerId).LastName }).ToList(); return(View()); }
// GET: Customer/Edit/5 public ActionResult Edit(int id) { Lib.Customer libRest = CRepo.GetCustomerById(id); var webRest = new Customer { CustomerId = libRest.Id, FirstName = libRest.FirstName, LastName = libRest.LastName, DefaultStoreId = libRest.DefaultStoreId }; return(View()); }
// GET: Customer public ActionResult Index() { IEnumerable <Lib.Customer> customers = CRepo.GetCustomers(); IEnumerable <Lib.Store> stores = SRepo.GetStores(); var viewModels = customers.Select(c => new Customer { CustomerId = c.Id, FirstName = c.FirstName, LastName = c.LastName, DefaultStoreId = c.DefaultStoreId, DefaultStoreName = stores.Single(s => s.Id == c.DefaultStoreId).Name }).ToList(); ViewBag.numOfCustomers = customers.Count(); ViewBag.numOfStores = stores.Count(); return(View(viewModels)); }
// GET: Customer/Edit/5 public ActionResult Edit(int id) { //Lib.Restaurant libRest = Repo.GetRestaurantById(id); //var webRest = new Restaurant //{ // Id = libRest.Id, // Name = libRest.Name //}; Lib.Customer libRest = CRepo.GetCustomerById(id); var webRest = new Customer { CustomerId = libRest.Id, FirstName = libRest.FirstName, LastName = libRest.LastName, DefaultStoreId = libRest.DefaultStoreId }; return(View()); }
public ActionResult Create(Lib.Customer customer) { try { // TODO: Add insert logic here var newCustomer = new Lib.Customer { FirstName = customer.FirstName, LastName = customer.LastName, DefaultStoreId = customer.DefaultStoreId }; CRepo.InsertCustomer(newCustomer); return(RedirectToAction(nameof(Index))); } catch (Exception ex) { _logger.LogError(ex.ToString()); return(RedirectToAction("Error", "Home")); } }
private List <CRepo> GetBlahRepos( ) { var repos = new List <CRepo>(); var marketPlaceData = new CRepo { Name = "sample-repo", Url = companyGit }; var marketPlaceDataSolution1 = new CSolution { SolutionName = "Company.SampleService.SyncServices", SolutionPath = @"Code\SyncServices" }; marketPlaceDataSolution1.Project.Add(new CProject { ProjectName = "SampleService", ProjectShortName = "SampleService", Path = "Company.SampleService.SyncServices.csproj", ProjectIs = CProjectIs.Grpc }); marketPlaceData.RepoSolution.Add(marketPlaceDataSolution1); repos.Add(marketPlaceData); repos.Add(new CRepo { Name = "news-svc", Url = companyGit }); repos.Add(new CRepo { Name = "weather-report-svc", Url = companyGit }); repos.Add(new CRepo { Name = "dockerize" }); return(repos); }
//[FromRoute] int id, [Bind("Name")]Restaurant restaurant public ActionResult Edit([FromRoute] int id, [Bind("Name")] Customer customer) { try { // edit does not work if (ModelState.IsValid) { Lib.Customer libRest = CRepo.GetCustomerById(id); libRest.FirstName = customer.FirstName; libRest.LastName = customer.LastName; libRest.DefaultStoreId = customer.DefaultStoreId; CRepo.Save(); return(RedirectToAction(nameof(Index))); } return(View(customer)); } catch { return(View(customer)); } }
// GET: Orders/Create public ActionResult Create() { List <Lib.Products> products = PRepo.GetProducts().OrderBy(p => p.ItemId).ToList(); List <Lib.OrderList> orderLists = new List <Lib.OrderList>(); List <Lib.Customer> Customers = CRepo.GetCustomers().ToList(); foreach (var product in products) { orderLists.Add(new Lib.OrderList { OrderId = 0, ItemId = 0, OrderListId = 0, ItemBought = 0 }); } List <SelectListItem> customerItems = new List <SelectListItem>(); foreach (var customer in Customers) { customerItems.Add(new SelectListItem() { Text = customer.FirstName + " " + customer.LastName, Value = customer.Id.ToString() }); } var viewModel = new Orders { Stores = SRepo.GetStores().ToList(), customerItems = customerItems, Products = products, OrderLists = orderLists }; return(View()); }
public List <CRepo> GetBlahBlahRepos() { var repos = new List <CRepo>(); var marketData = new CRepo { Name = "market-data", Url = companyGit }; repos.Add(marketData); repos.Add(new CRepo { Name = "stocks-svc", Url = companyGit }); repos.Add(new CRepo { Name = "warehouse-svc", Url = companyGit }); repos.Add(new CRepo { Name = "dockerize" }); return(repos); }
public void Visit(CRepo repo) { _repoVisitor.Visit(this, repo); }
public ActionResult DrillDown() { return(View(CRepo.GetList())); }
public void BuildSellersMegaSolution() { var tempPath = OutputDir; var codeWriter = new CodeWriter(); IServiceCollection serviceCollection = new ServiceCollection(); serviceCollection.AddTransient <IVisualStudioSolutionWriter, VisualStudioSolutionWriter>(); serviceCollection.AddTransient <ICSolutionVisitor, FastSolutionVisitor>(); var fileWriter = new FileWriter(); fileWriter.RootPath = tempPath; serviceCollection.AddSingleton <IFileWriter>(fileWriter); serviceCollection.AddSingleton <ILogger <CVisualStudioVisitorBase> >(new Logger <CVisualStudioVisitorBase>(new NullLoggerFactory())); serviceCollection.AddSingleton <ILogger <CMetaRepoVisitor> >(new Logger <CMetaRepoVisitor>(new NullLoggerFactory())); serviceCollection.AddSingleton <ILogger <CRepoVisitor> >(new Logger <CRepoVisitor>(new NullLoggerFactory())); serviceCollection.AddSingleton <ILogger <VisualStudioSolutionWriter> >(new Logger <VisualStudioSolutionWriter>(new NullLoggerFactory())); serviceCollection.AddSingleton <ILogger <CProjectVisitor> >(new Logger <CProjectVisitor>(new NullLoggerFactory())); serviceCollection.AddSingleton <ILogger <CProjectFileVisitor> >(new Logger <CProjectFileVisitor>(new NullLoggerFactory())); serviceCollection.AddSingleton <ILogger <CProjectContentVisitor> >(new Logger <CProjectContentVisitor>(new NullLoggerFactory())); serviceCollection.AddSingleton <ILogger <CDockerComposeFileVisitor> >(new Logger <CDockerComposeFileVisitor>(new NullLoggerFactory())); serviceCollection.AddSingleton <ILogger <CDockerFileServiceVisitor> >(new Logger <CDockerFileServiceVisitor>(new NullLoggerFactory())); serviceCollection.AddSingleton <ICodeWriter>(codeWriter); serviceCollection.AddTransient <ICVisualStudioVisitorBase, CVisualStudioVisitorBase>(); serviceCollection.AddTransient <IFastSolutionVisitor, FastSolutionVisitor>(); //serviceCollection.AddTransient<ICVisualStudioVisitor, CVisualStudioVisitor>(); serviceCollection.AddTransient <ICMetaRepoVisitor, CMetaRepoVisitor>(); serviceCollection.AddTransient <ICRepoVisitor, CRepoVisitor>(); serviceCollection.AddTransient <ICVisualStudioVisitor, CVisualStudioVisitor>(); //var serviceProvider = serviceCollection.BuildServiceProvider(); var container = new Container(); container.Configure(config => { config.Scan(scanner => { scanner.AssemblyContainingType <ILogger>(); scanner.AssemblyContainingType <IKickstartService>(); scanner.SingleImplementationsOfInterface(); }); config.Populate(serviceCollection); }); var serviceProvider = container.GetInstance <IServiceProvider>(); var metaRepo = new MetaRepoBuilder().BuildSampleMetaRepo(); var visitor = serviceProvider.GetRequiredService <ICVisualStudioVisitorBase>(); // new CVisualStudioVisitor(new Mock<ILogger>().Object, codeWriter); metaRepo.Accept(visitor as IVisitor); Directory.CreateDirectory(tempPath); //http://thesoftwarecondition.com/blog/2014/06/08/nuget-issues-with-nested-solutions-branches/ //get code from repos CommandProcessor.ExecuteCommandWindow(codeWriter.ToString(), tempPath, true); UpdateLibraryPaths(tempPath); var compositeSolution = new CSolution() { SolutionName = metaRepo.MetaRepoName }; compositeSolution.SolutionPath = Path.Combine(tempPath, $"{compositeSolution.SolutionName}.sln"); var compositeRepo = new CRepo(); compositeRepo.RepoSolution.Add(compositeSolution); metaRepo.CompositeRepo = compositeRepo; //todo: dockerize Asp.Net apps //set docker-compose to looking in the Publish folder otherwise there's way too many files //add docker file to project //set dockerfile to copy when Publish //find all the solutions in repos foreach (var repo in metaRepo.Repos) { var repoPath = Path.Combine(tempPath, repo.Name); var solutionPaths = new VisualStudioScanner().ScanForSolutions(repoPath); var solutions = new SlnToCSolutionConverter().Convert(solutionPaths); repo.RepoSolution.Clear();//remove any existing foreach (var solution in solutions) { if (repo.SolutionWhiteList.Count > 0 && !repo.SolutionWhiteList.Contains(solution.SolutionName)) { continue; } repo.RepoSolution.Add(solution); } } var dockerComposeFile = new DockerComposeFileService().Build(metaRepo); var dockerComposeProject = new CProject() { ProjectName = "docker-compose", ProjectIs = CProjectIs.DockerCompose, ProjectType = CProjectType.DockerProj, TemplateProjectPath = @"templates\Docker\docker-compose.dcproj" }; dockerComposeProject.ProjectContent.Add(new CProjectContent { Content = dockerComposeFile, File = new CFile { FileName = "docker-compose.yml", Encoding = Encoding.ASCII }, BuildAction = CBuildAction.None }); compositeSolution.Project.Add(dockerComposeProject); var writer = serviceProvider.GetRequiredService <IVisualStudioSolutionWriter>(); writer.Write(tempPath, compositeSolution); //add all the projects to the composite solution var fastSolutionVisitor = serviceProvider.GetRequiredService <IFastSolutionVisitor>(); // new FastSolutionVisitor(codeWriter, new Mock<IFileWriter>().Object); foreach (var repo in metaRepo.Repos) { foreach (var solution in repo.RepoSolution) { fastSolutionVisitor.AddAllProjectsToMasterSln(solution, tempPath, compositeSolution.SolutionName); } } //generate batch script to do "Nuget Restore" //todo: move into library var batchWriter = new CodeWriter(); foreach (var repo in metaRepo.Repos) { foreach (var solution in repo.RepoSolution) { System.Uri uri1 = new Uri(tempPath); System.Uri uri2 = new Uri(Path.GetDirectoryName(solution.SolutionPath)); Uri relativeUri = uri1.MakeRelativeUri(uri2); var relativePath = relativeUri.ToString().Replace("%20", " "); batchWriter.WriteLine($@"copy nuget.exe ""{relativePath}/nuget.exe"" /Y"); batchWriter.WriteLine($"cd {relativePath}"); batchWriter.WriteLine($@"Nuget Restore ""{solution.SolutionPath}"""); batchWriter.WriteLine($@"del nuget.exe"); batchWriter.WriteLine("cd /D %~dp0"); //go back to where batch was run } } File.WriteAllText(Path.Combine(tempPath, "NugetRestore.cmd"), batchWriter.ToString()); }
public void Visit(IVisitor visitor, CRepo repo) { CodeWriter.WriteLine($@"CMD /c "" meta project add {repo.Name} {repo.Url}{repo.Name}"); }