public ActionResult CreateVehicle(Vehicle item) { if (ModelState.IsValid) { _VehcileManager.Add(item); ViewBag.Result = "Kayıt başarıyla eklendi."; return(View()); } return(RedirectToAction("Index")); }
public ActionResult Create([Bind(Include = "Id,BrandName,Model,RegistrationNo,ChesisNo,Capacity")] Vehicle vehicle) { if (ModelState.IsValid) { //db.Vehicles.Add(vehicle); //db.SaveChanges(); _vehicleManager.Add(vehicle); return(RedirectToAction("Index")); } return(View(vehicle)); }
public static void AddCarTest() { VehicleManager carManager = new VehicleManager(new EfVehicleDal()); var result = carManager.Add(new Vehicle { CarId = 10, BrandId = 5, ColorId = 3, VehicleName = "BMW 316i", ModelYear = 2019, DailyPrice = 400, Description = "otomatik" }); if (result.Success == true) { Console.WriteLine(result.Message); } else { Console.WriteLine(result.Message); } }
public static void ExecuteCommand(int UserCommand, ref VehicleManager vehicleManager, ref List <Vehicle> vehicles, ref long TotalVisitor) { if (UserCommand == (int)Commandtype.Add) { vehicleManager.VehicleTypeSelectInstruction(); Int32 vehicleType = Convert.ToInt32(Console.ReadLine()); Vehicle vehicle = vehicleManager.GetVehicle((VehicleType)vehicleType); long VehicleNextId = vehicleManager.GetNextId(vehicles); vehicleManager.Add(vehicleManager.SetVechileData(vehicle, VehicleNextId, ref TotalVisitor), ref vehicles); } else if (UserCommand == (int)Commandtype.Remove) { Console.WriteLine("Use Vehicle Id for Remove Vehicle"); vehicleManager.ShowVechileList(vehicles); Console.WriteLine("Please Press Vehile Id"); object VehicleId = Convert.ToInt32(Console.ReadLine()); vehicleManager.Remove(VehicleId, ref vehicles); Console.WriteLine("Remove Success VehicleId=" + VehicleId); } else if (UserCommand == (int)Commandtype.ShowVehicleList) { vehicleManager.ShowVechileList(vehicles); } else if (UserCommand == (int)Commandtype.ShowVehicleListWithTotalVisitor) { Console.WriteLine("Total Visitor Is:" + TotalVisitor); vehicleManager.ShowVechileList(vehicles); } else if (UserCommand == (int)Commandtype.ClearCommandLine) { Console.Clear(); } else if (UserCommand == (int)Commandtype.CommandLineHelp) { vehicleManager.CommandLineHelpInstruction(); } else { Console.WriteLine("Please Press Command Between 1 and 5"); } }
private static void CarTest() { VehicleManager vehicleManager = new VehicleManager(new EfCarDal()); vehicleManager.Add(new Car { Id = 10, BrandId = 333, ColorId = 33, ModelYear = 2017, DailyPrice = 15, CarDescription = "Sport Car", CarName = "Impreza" }); //vehicleManager.Update(new Car { Id = 2, BrandId = 34, ColorId = 77, ModelYear = 2011, CarName = "Commodore", CarDescription = "V6", DailyPrice = 123 }); //foreach (var car in vehicleManager.GetCarDetails()) //{ // Console.WriteLine(car.ColorName + car.BrandName + car.ColorName + car.DailyPrice); //} }
void Initialize() { instance = this; ModConsole.Log("[MOP] Loading MOP..."); // Initialize the worldObjectManager list worldObjectManager = new WorldObjectManager(); // Looking for player and yard player = GameObject.Find("PLAYER").transform; // Add GameFixes MonoBehaviour. try { gameObject.AddComponent <GameFixes>(); } catch (Exception ex) { ExceptionManager.New(ex, false, $"GAME_FIXES_INITIALIZAITON | {ex}"); } // Loading vehicles vehicleManager = new VehicleManager(); // World Objects try { worldObjectManager.Add("CABIN", DisableOn.Distance | DisableOn.IgnoreInQualityMode); worldObjectManager.Add("COTTAGE", DisableOn.Distance, 400); worldObjectManager.Add("DANCEHALL", DisableOn.Distance, 500); worldObjectManager.Add("PERAJARVI", DisableOn.Distance | DisableOn.IgnoreInQualityMode, 400); worldObjectManager.Add("SOCCER", DisableOn.Distance); worldObjectManager.Add("WATERFACILITY", DisableOn.Distance, 300); worldObjectManager.Add("DRAGRACE", DisableOn.Distance, 1100); worldObjectManager.Add("StrawberryField", DisableOn.Distance, 400); worldObjectManager.Add("MAP/Buildings/DINGONBIISI", DisableOn.Distance, 400); worldObjectManager.Add("RALLY/PartsSalesman", DisableOn.Distance, 400); worldObjectManager.Add("LakeSmallBottom1", DisableOn.Distance, 500); worldObjectManager.Add("machine", DisableOn.Distance, 200, silent: true); ModConsole.Log("[MOP] World objects (1) loaded"); } catch (Exception ex) { ExceptionManager.New(ex, false, "WORLD_OBJECTS_1_INITIALIZAITON_FAIL"); } // Initialize places. placeManager = new PlaceManager(); // Fixes GameFixes.Instance.MainFixes(); //Things that should be enabled when out of proximity of the house try { worldObjectManager.Add("NPC_CARS", DisableOn.PlayerInHome); worldObjectManager.Add("TRAFFIC", DisableOn.PlayerInHome); worldObjectManager.Add("TRAIN", DisableOn.PlayerInHome | DisableOn.IgnoreInQualityMode); worldObjectManager.Add("Buildings", DisableOn.PlayerInHome); worldObjectManager.Add("TrafficSigns", DisableOn.PlayerInHome); worldObjectManager.Add("StreetLights", DisableOn.PlayerInHome); worldObjectManager.Add("HUMANS", DisableOn.PlayerInHome); worldObjectManager.Add("TRACKFIELD", DisableOn.PlayerInHome); worldObjectManager.Add("SkijumpHill", DisableOn.PlayerInHome | DisableOn.IgnoreInQualityMode); worldObjectManager.Add("Factory", DisableOn.PlayerInHome); worldObjectManager.Add("WHEAT", DisableOn.PlayerInHome); worldObjectManager.Add("RAILROAD", DisableOn.PlayerInHome); worldObjectManager.Add("AIRPORT", DisableOn.PlayerInHome); worldObjectManager.Add("RAILROAD_TUNNEL", DisableOn.PlayerInHome); worldObjectManager.Add("PierDancehall", DisableOn.PlayerInHome); worldObjectManager.Add("PierRiver", DisableOn.PlayerInHome); worldObjectManager.Add("PierStore", DisableOn.PlayerInHome); worldObjectManager.Add("BRIDGE_dirt", DisableOn.PlayerInHome); worldObjectManager.Add("BRIDGE_highway", DisableOn.PlayerInHome); worldObjectManager.Add("BirdTower", DisableOn.Distance, 400); worldObjectManager.Add("RYKIPOHJA", DisableOn.PlayerInHome); worldObjectManager.Add("COMPUTER", DisableOn.PlayerAwayFromHome); ModConsole.Log("[MOP] World objects (2) loaded"); } catch (Exception ex) { ExceptionManager.New(ex, false, "WORLD_OBJECTS_2_INITIALIZAITON_FAIL"); } // Adding area check if Satsuma is in the inspection's area try { SatsumaInArea inspectionArea = GameObject.Find("INSPECTION").AddComponent <SatsumaInArea>(); inspectionArea.Initialize(new Vector3(20, 20, 20)); } catch (Exception ex) { ExceptionManager.New(ex, false, "SATSUMA_AREA_CHECK_INSPECTION_FAIL"); } // Check for when Satsuma is on the lifter try { SatsumaInArea lifterArea = GameObject.Find("REPAIRSHOP/Lifter/Platform").AddComponent <SatsumaInArea>(); lifterArea.Initialize(new Vector3(5, 5, 5)); } catch (Exception ex) { ExceptionManager.New(ex, false, "SATSUMA_AREA_CHECK_REPAIRSHOP_FAIL"); } // Area for the parc ferme. try { GameObject parcFermeTrigger = new GameObject("MOP_ParcFermeTrigger"); parcFermeTrigger.transform.parent = GameObject.Find("RALLY").transform.Find("Scenery"); parcFermeTrigger.transform.position = new Vector3(-1383f, 3f, 1260f); SatsumaInArea parcFerme = parcFermeTrigger.AddComponent <SatsumaInArea>(); parcFerme.Initialize(new Vector3(41, 12, 35)); } catch (Exception ex) { ExceptionManager.New(ex, false, "PARC_FERME_TRIGGER_FAIL"); } ModConsole.Log("[MOP] Satsuma triggers loaded"); // Jokke's furnitures. // Only renderers are going to be toggled. try { if (GameObject.Find("tv(Clo01)")) { string[] furnitures = { "tv(Clo01)", "chair(Clo02)", "chair(Clo05)", "bench(Clo01)", "bench(Clo02)", "table(Clo02)", "table(Clo03)", "table(Clo04)", "table(Clo05)", "desk(Clo01)", "arm chair(Clo01)" }; foreach (string furniture in furnitures) { GameObject g = GameObject.Find(furniture); if (g) { g.transform.parent = null; worldObjectManager.Add(g, DisableOn.Distance, 100, ToggleModes.Renderer); } } ModConsole.Log("[MOP] Jokke's furnitures found and loaded"); } } catch (Exception ex) { ExceptionManager.New(ex, false, "JOKKE_FURNITURE_ERROR"); } // Haybales. // First we null out the prevent it from reloading the position of haybales. try { GameObject haybalesParent = GameObject.Find("JOBS/HayBales"); if (haybalesParent != null) { haybalesParent.GetComponent <PlayMakerFSM>().Fsm.RestartOnEnable = false; // And now we add all child haybale to world objects. foreach (Transform haybale in haybalesParent.transform.GetComponentInChildren <Transform>()) { worldObjectManager.Add(haybale.gameObject.name, DisableOn.Distance | DisableOn.IgnoreInQualityMode, 120); } } } catch (Exception ex) { ExceptionManager.New(ex, false, "HAYBALES_FIX_ERROR"); } // Logwalls try { foreach (GameObject wall in Resources.FindObjectsOfTypeAll <GameObject>().Where(g => g.name == "LogwallLarge")) { worldObjectManager.Add(wall, DisableOn.Distance, 300); } } catch (Exception ex) { ExceptionManager.New(ex, false, "LOGWALL_LOAD_ERROR"); } // Perajarvi Church. try { if (MopSettings.Mode != PerformanceMode.Performance) { GameObject church = GameObject.Find("PERAJARVI").transform.Find("CHURCH").gameObject; church.transform.parent = null; GameObject churchLOD = church.transform.Find("LOD").gameObject; church.GetComponent <PlayMakerFSM>().enabled = false; worldObjectManager.Add(churchLOD, DisableOn.Distance, 300); } } catch (Exception ex) { ExceptionManager.New(ex, false, "CHURCH_LOD_ERROR"); } // Lake houses. try { if (MopSettings.Mode == PerformanceMode.Quality) { GameObject.Find("PERAJARVI").transform.Find("TerraceHouse").transform.parent = null; } } catch (Exception ex) { ExceptionManager.New(ex, false, "LAKE_HOUSE_ERROR"); } // VehiclesHighway renderers. try { Transform vehiclesHighway = GameObject.Find("TRAFFIC").transform.Find("VehiclesHighway"); foreach (var f in vehiclesHighway.GetComponentsInChildren <Transform>(true).Where(f => f.parent == vehiclesHighway)) { worldObjectManager.Add(f.gameObject, DisableOn.Distance, 600, ToggleModes.MultipleRenderers); } // Also we gonna fix the lag on initial traffic load. vehiclesHighway.gameObject.SetActive(true); } catch (Exception ex) { ExceptionManager.New(ex, false, "TRAFFIC_VEHICLES_ERROR"); } // FITTAN renderers. try { worldObjectManager.Add(GameObject.Find("TRAFFIC").transform.Find("VehiclesDirtRoad/Rally/FITTAN").gameObject, DisableOn.Distance, 600, ToggleModes.MultipleRenderers); } catch (Exception ex) { ExceptionManager.New(ex, false, "FITTAN_RENDERERS_ERROR"); } // Initialize Items class try { new ItemsManager(); ItemsManager.Instance.Initialize(); ModConsole.Log("[MOP] Items class initialized"); } catch (Exception ex) { ExceptionManager.New(ex, true, "ITEMS_CLASS_ERROR"); } try { DateTime now = DateTime.Now; if (now.Day == 1 && now.Month == 4) { GameObject fpsObject = GameObject.Find("GUI").transform.Find("HUD/FPS/HUDValue").gameObject; PlayMakerFSM[] fsms = fpsObject.GetComponents <PlayMakerFSM>(); foreach (var fsm in fsms) { fsm.enabled = false; } fpsObject.GetComponent <TextMesh>().text = "99999999 :)"; fpsObject.transform.Find("HUDValueShadow").GetComponent <TextMesh>().text = "99999999 :)"; } } catch { } HookPreSaveGame(); ModConsole.Log("[MOP] Loading rules..."); foreach (ToggleRule v in RulesManager.Instance.ToggleRules) { try { switch (v.ToggleMode) { default: ModConsole.LogError($"[MOP] Unrecognized toggle mode for {v.ObjectName}: {v.ToggleMode}."); break; case ToggleModes.Simple: if (GameObject.Find(v.ObjectName) == null) { ModConsole.LogError($"[MOP] Couldn't find world object {v.ObjectName}"); continue; } worldObjectManager.Add(v.ObjectName, DisableOn.Distance); break; case ToggleModes.Renderer: if (GameObject.Find(v.ObjectName) == null) { ModConsole.LogError($"[MOP] Couldn't find world object {v.ObjectName}"); continue; } worldObjectManager.Add(v.ObjectName, DisableOn.Distance, 200, ToggleModes.Renderer); break; case ToggleModes.Item: GameObject g = GameObject.Find(v.ObjectName); if (g == null) { ModConsole.LogError($"[MOP] Couldn't find item {v.ObjectName}"); continue; } if (g.GetComponent <ItemBehaviour>() == null) { g.AddComponent <ItemBehaviour>(); } break; case ToggleModes.Vehicle: if (RulesManager.Instance.SpecialRules.IgnoreModVehicles) { continue; } if (GameObject.Find(v.ObjectName) == null) { ModConsole.LogError($"[MOP] Couldn't find vehicle {v.ObjectName}"); continue; } vehicleManager.Add(new Vehicle(v.ObjectName)); break; case ToggleModes.VehiclePhysics: if (RulesManager.Instance.SpecialRules.IgnoreModVehicles) { continue; } if (GameObject.Find(v.ObjectName) == null) { ModConsole.LogError($"[MOP] Couldn't find vehicle {v.ObjectName}"); continue; } vehicleManager.Add(new Vehicle(v.ObjectName)); Vehicle veh = vehicleManager[vehicleManager.Count - 1]; veh.Toggle = veh.ToggleUnityCar; break; } } catch (Exception ex) { ExceptionManager.New(ex, false, "TOGGLE_RULES_LOAD_ERROR"); } } ModConsole.Log("[MOP] Rules loading complete!"); // Initialzie sector manager try { gameObject.AddComponent <SectorManager>(); } catch (Exception ex) { ExceptionManager.New(ex, true, "SECTOR_MANAGER_ERROR"); } // Add DynamicDrawDistance component. try { gameObject.AddComponent <DynamicDrawDistance>(); } catch (Exception ex) { ExceptionManager.New(ex, false, "DYNAMIC_DRAW_DISTANCE_ERROR"); } try { if (MopSettings.Mode != PerformanceMode.Safe) { ToggleAll(false, ToggleAllMode.OnLoad); } } catch (Exception ex) { ExceptionManager.New(ex, true, "TOGGLE_ALL_ERROR"); } // Initialize the coroutines. currentLoop = LoopRoutine(); StartCoroutine(currentLoop); currentControlCoroutine = ControlCoroutine(); StartCoroutine(currentControlCoroutine); ModConsole.Log("<color=green>[MOP] MOD LOADED SUCCESFULLY!</color>"); Resources.UnloadUnusedAssets(); GC.Collect(); // If generate-list command is set to true, generate the list of items that are disabled by MOP. if (MopSettings.GenerateToggledItemsListDebug) { if (System.IO.File.Exists("world.txt")) { System.IO.File.Delete("world.txt"); } string world = ""; foreach (var w in worldObjectManager.GetList()) { if (world.Contains(w.GetName())) { continue; } world += w.GetName() + ", "; } System.IO.File.WriteAllText("world.txt", world); System.Diagnostics.Process.Start("world.txt"); if (System.IO.File.Exists("vehicle.txt")) { System.IO.File.Delete("vehicle.txt"); } string vehiclez = ""; foreach (var w in vehicleManager.List()) { vehiclez += w.gameObject.name + ", "; } System.IO.File.WriteAllText("vehicle.txt", vehiclez); System.Diagnostics.Process.Start("vehicle.txt"); if (System.IO.File.Exists("items.txt")) { System.IO.File.Delete("items.txt"); } string items = ""; foreach (var w in ItemsManager.Instance.All()) { if (items.Contains(w.gameObject.name)) { continue; } items += w.gameObject.name + ", "; } System.IO.File.WriteAllText("items.txt", items); System.Diagnostics.Process.Start("items.txt"); if (System.IO.File.Exists("place.txt")) { System.IO.File.Delete("place.txt"); } string place = ""; foreach (var w in placeManager.GetList()) { place += w.GetName() + ": "; foreach (var f in w.GetDisableableChilds()) { if (place.Contains(f.gameObject.name)) { continue; } place += f.gameObject.name + ", "; } place += "\n\n"; } System.IO.File.WriteAllText("place.txt", place); System.Diagnostics.Process.Start("place.txt"); } }
// Inject background service, for receiving message public void ConfigureServices(IServiceCollection services) { var serviceProvider = services.BuildServiceProvider(); var loggerFactorySrv = serviceProvider.GetService <ILoggerFactory>(); services.AddDbContextPool <VehicleDbContext>(options => options.UseSqlServer( _systemLocalConfiguration.EventDbConnection, //enable connection resilience connectOptions => { connectOptions.EnableRetryOnFailure(); connectOptions.CommandTimeout(Identifiers.TimeoutInSec); }) //.UseLoggerFactory(loggerFactorySrv)// to log queries ); //add application insights information, could be used to monitor the performance, and more analytics when application moved to the cloud. loggerFactorySrv.AddApplicationInsights(services.BuildServiceProvider(), LogLevel.Information); ILogger _logger = loggerFactorySrv .AddConsole() .AddDebug() .AddFile(Configuration.GetSection("Logging")) .CreateLogger <Startup>(); // no need to inject the following service since, currently they are injected for the mediator. services.AddSingleton <MiddlewareConfiguration, MiddlewareConfiguration>(srv => _systemLocalConfiguration); services.AddScoped <IOperationalUnit, IOperationalUnit>(srv => new OperationalUnit( environment: Environemnt.EnvironmentName, assembly: AssemblyName)); services.AddScoped <IMessageCommand, RabbitMQPublisher>(srv => new RabbitMQPublisher(loggerFactorySrv, new RabbitMQConfiguration { hostName = _systemLocalConfiguration.MessagesMiddleware, exchange = _systemLocalConfiguration.MiddlewareExchange, userName = _systemLocalConfiguration.MessagesMiddlewareUsername, password = _systemLocalConfiguration.MessagesMiddlewarePassword, routes = new string[] { _systemLocalConfiguration.MessagePublisherRoute } })); services.AddOptions(); #region worker #region vehicle worker services.AddSingleton <IHostedService, RabbitMQSubscriberWorker>(srv => { //get Vehicle service var vehicleSrv = new VehicleManager(loggerFactorySrv, srv.GetService <VehicleDbContext>()); var cacheSrv = new CacheManager(Logger, _systemLocalConfiguration.CacheServer); return(new RabbitMQSubscriberWorker (serviceProvider, loggerFactorySrv, new RabbitMQConfiguration { hostName = _systemLocalConfiguration.MessagesMiddleware, exchange = _systemLocalConfiguration.MiddlewareExchange, userName = _systemLocalConfiguration.MessagesMiddlewareUsername, password = _systemLocalConfiguration.MessagesMiddlewarePassword, routes = _systemLocalConfiguration.MessageSubscriberRoute?.Split('-') ?? new string[0] } , (messageCallback) => { try { var message = messageCallback(); if (message != null) { var domainModel = Utilities.JsonBinaryDeserialize <VehicleModel>(message); var vehicle = new VehicleSQLDB.DbModels.Vehicle(domainModel.Body); //get the correlated customer from the cache, to fill name field var customerBinary = cacheSrv.GetBinary(vehicle.CustomerId.ToString())?.Result; if (customerBinary != null) { var customer = Utilities.JsonBinaryDeserialize <Customer>(customerBinary); vehicle.CustomerName = customer.Name; } vehicleSrv.Add(vehicle).Wait(); cacheSrv.SetBinary(vehicle.ChassisNumber, Utilities.JsonBinarySerialize(vehicle)).Wait(); } Logger.LogInformation($"[x] Vehicle service receiving a message from exchange: {_systemLocalConfiguration.MiddlewareExchange}, route :{_systemLocalConfiguration.MessageSubscriberRoute}"); } catch (System.Exception ex) { Logger.LogCritical(ex, "Object de-serialization exception."); } })); }); #endregion #region tracking vehicle query client services.AddScoped <IMessageRequest <VehicleFilterModel, IEnumerable <DomainModels.Business.VehicleDomain.Vehicle> >, RabbitMQRequestClient <VehicleFilterModel, IEnumerable <DomainModels.Business.VehicleDomain.Vehicle> > >( srv => { return(new RabbitMQRequestClient <VehicleFilterModel, IEnumerable <DomainModels.Business.VehicleDomain.Vehicle> > (loggerFactorySrv, new RabbitMQConfiguration { exchange = "", hostName = _systemLocalConfiguration.MessagesMiddleware, userName = _systemLocalConfiguration.MessagesMiddlewareUsername, password = _systemLocalConfiguration.MessagesMiddlewarePassword, routes = new string[] { "rpc_queue_vehicle_filter" }, })); }); #endregion #region vehicle query worker // business logic services.AddSingleton <IHostedService, RabbitMQRequestWorker>(srv => { var customerSrv = new VehicleManager(loggerFactorySrv, srv.GetService <VehicleDbContext>()); return(new RabbitMQRequestWorker (serviceProvider, loggerFactorySrv, new RabbitMQConfiguration { exchange = "", hostName = _systemLocalConfiguration.MessagesMiddleware, userName = _systemLocalConfiguration.MessagesMiddlewareUsername, password = _systemLocalConfiguration.MessagesMiddlewarePassword, routes = new string[] { "rpc_queue_vehicle_filter" }, } , (customerFilterMessageRequest) => { try { //TODO: add business logic, result should be serializable var customerFilter = Utilities.JsonBinaryDeserialize <VehicleFilterModel>(customerFilterMessageRequest); Logger.LogInformation($"[x] callback of RabbitMQ customer worker=> a message"); var response = customerSrv.Query((c) => { return c.CustomerId == customerFilter.Body?.CustomerId; })?.ToList(); if (response == null) { return new byte[0]; } return Utilities.JsonBinarySerialize(response); } catch (Exception ex) { Logger.LogCritical(ex, "Object de-serialization exception."); //to respond back to RPC client return new byte[0]; } })); }); #endregion #endregion /// /// Injecting message receiver background service /// services.AddDistributedRedisCache(redisOptions => { redisOptions.Configuration = _systemLocalConfiguration.CacheServer; redisOptions.Configuration = _systemLocalConfiguration.VehiclesCacheDB; }); services.AddApiVersioning(options => { options.DefaultApiVersion = new Microsoft.AspNetCore.Mvc.ApiVersion(1, 0); options.AssumeDefaultVersionWhenUnspecified = true; options.ReportApiVersions = true; }); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = AssemblyName, Version = "v1" }); }); services.AddMediatR(); var _operationalUnit = new OperationalUnit( environment: Environemnt.EnvironmentName, assembly: AssemblyName); services.AddMvc(options => { //TODO: add practical policy instead of empty policy for authentication / authorization . options.Filters.Add(new CustomAuthorizer(_logger, _operationalUnit)); options.Filters.Add(new CustomeExceptoinHandler(_logger, _operationalUnit, Environemnt)); options.Filters.Add(new CustomResponseResult(_logger, _operationalUnit)); }); }