public void Statistics_DailyGather(string PKID, DateTime start, DateTime end) { try { IParking iparking = ParkingFactory.GetFactory(); string strerror = string.Empty; var parking = iparking.QueryParkingByParkingID(PKID); List <ParkGate> gatelist = ParkGateServices.QueryByParkingId(PKID); try { var p = iparking.QueryParkingByParkingID(PKID); new DailyGatherServices().Statistics_DailyByHour(p, start, end); } catch (Exception ex) { Common.Services.TxtLogServices.WriteTxtLog("按时统计异常 异常信息:{0}", ex.Message); } //按通道统计时数据 try { new GateGatherServices().Statistics_DailyByGate(gatelist, parking, start, end); } catch (Exception ex) { Common.Services.TxtLogServices.WriteTxtLog("按通道统计异常 异常信息:{0}", ex.Message); } } catch (Exception ex) { Common.Services.TxtLogServices.WriteTxtLog("按日统计异常 异常信息:{0}", ex.Message); } }
private void HandleOnParkingsRefreshed(IApiResult <List <IParking> > apiResult) { if (apiResult.Error) { return; } var parking = apiResult.Result.SingleOrDefault(p => p.Id == Parking.Id); if (parking == null) { return; } if (parking.LastUpdateDate == Parking.LastUpdateDate) { return; } var parkingViewModel = BindingContext as ParkingViewModel; if (parkingViewModel == null) { return; } parkingViewModel.Update(parking); UpdateFreePlacesCountColorText(parkingViewModel); Parking = parking; }
private async Task AssignClassVariables(int daysToAddInAdvance, IParking parkingManager, IParkingDetailsOnDate parkingDetailsManager, IParkingManagement parkingManagementManager) { _parkingManager = parkingManager; _parkingDetailsManager = parkingDetailsManager; _parkingManagementManager = parkingManagementManager; this.daysToAddInAdvance = daysToAddInAdvance; }
public ManageParkingSpaceController(ApplicationDbContext context, IParkingManagement parkingManagementManager, IParking parkingManager, IParkingDetailsOnDate parkingDetailsManager) { _context = context; _parkingManagementManager = parkingManagementManager; _parkingManager = parkingManager; _parkingDetailsManager = parkingDetailsManager; }
public static bool Update(BaseParkinfo model, bool addlog = true) { if (model == null) { throw new ArgumentNullException("model"); } if (string.IsNullOrWhiteSpace(model.PKNo)) { throw new MyException("车场编号不能为空"); } IParking factory = ParkingFactory.GetFactory(); BaseParkinfo park = factory.QueryParkingByParkingNo(model.PKNo); if (park != null && park.PKID != model.PKID) { throw new MyException("车场编号不能重复"); } bool result = factory.Update(model); if (result && addlog) { OperateLogServices.AddOperateLog <BaseParkinfo>(model, OperateType.Update); } return(result); }
public async Task CreateNextParkingDaysIfNeccesary(int daysToAddInAdvance, IParking parkingManager, IParkingDetailsOnDate parkingDetailsManager, IParkingManagement parkingManagementManager) { await AssignClassVariables(daysToAddInAdvance, parkingManager, parkingDetailsManager, parkingManagementManager); var LastExistingDateInTheDB = await _parkingDetailsManager.GetLastExistingDate(); var allNeededDaysExist = await CheckIfAllNeededDaysExist(LastExistingDateInTheDB); if (allNeededDaysExist) { return; } var isThereAnyMissingDate = await _parkingManager.GetAllParkingSpacesWithMissingDate(LastExistingDateInTheDB.AddBusinessDays(this.daysToAddInAdvance).Date, false); var numberOfPArkingSpaces = await _parkingManager.GetAllParkingSpaces(); if (isThereAnyMissingDate.Count() == numberOfPArkingSpaces.Count()) { return; } var numberOfDaysToCheck = await GetTotalNumberOfDaysToCheck(LastExistingDateInTheDB); await CheckIfRecordExistIOnDateAndCreateIfNot(numberOfDaysToCheck); }
public List <ParkingDeserialize> GetParking() { //Initialize IParking repos = DataFactory.ParkingRepository(); return(repos.GetOutParkingInfo()); }
public ActionResult GetParking() { //Initialize IParking repos = DataFactory.ParkingRepository(); return(Content(JsonConvert.SerializeObject(repos.GetOutParkingInfo()), "application/json")); }
public HomeController(ApplicationDbContext context, UserManager <User> userManager, SignInManager <User> signInManager, IParkingManagement parkingManagementManager, IParking parkingManager, IParkingDetailsOnDate parkingDetailsManager) { _userManager = userManager; _parkingManagementManager = parkingManagementManager; _parkingManager = parkingManager; _parkingDetailsManager = parkingDetailsManager; _context = context; }
public void Execute() { IParking whereToPark = parkingRepository.Find(parkingId); CarSubject carToPark = carRepository.Find(carId); whereToPark.SetCarToParking(carToPark); carToPark.IsParked = true; }
public void Undo() { IParking whereToPark = parkingRepository.Find(parkingId); CarSubject carToPark = carRepository.Find(carId); whereToPark.RemoveCarfromParking(carToPark); carToPark.IsParked = false; }
public ManageUserAssignmentsToParkingController(ApplicationDbContext context, UserManager <User> userManager, IParkingManagement parkingManagementManager, IParkingDetailsOnDate parkingDetailsManager, IParking parkingManager) { _context = context; _userManager = userManager; _parkingManagementManager = parkingManagementManager; _parkingDetailsManager = parkingDetailsManager; _parkingManager = parkingManager; }
public static bool Add(BaseParkinfo model) { if (model == null) { throw new ArgumentNullException("model"); } if (string.IsNullOrWhiteSpace(model.PKNo)) { throw new MyException("车场编号不能为空"); } IParking factory = ParkingFactory.GetFactory(); BaseParkinfo park = factory.QueryParkingByParkingNo(model.PKNo); if (park != null) { throw new MyException("车场编号不能重复"); } model.PKID = GuidGenerator.GetGuidString(); using (DbOperator dbOperator = ConnectionManager.CreateConnection()) { try { dbOperator.BeginTransaction(); bool result = factory.Add(model, dbOperator); if (!result) { throw new MyException("添加车场信息失败"); } result = ParkCarModelServices.AddDefault(model.PKID, dbOperator); if (!result) { throw new MyException("添加车型失败"); } result = ParkCarTypeServices.AddDefault(model.PKID, dbOperator); if (!result) { throw new MyException("添加车类型失败"); } dbOperator.CommitTransaction(); if (result) { OperateLogServices.AddOperateLog <BaseParkinfo>(model, OperateType.Add); } return(true); } catch { dbOperator.RollbackTransaction(); throw; } } }
public static IParking GetFactory() { if (factory == null) { Type type = Type.GetType("Common." + SystemDefaultConfig.DatabaseProvider + "Repository.ParkingDAL,Common." + SystemDefaultConfig.DatabaseProvider + "Repository", true); factory = (IParking)Activator.CreateInstance(type); } return(factory); }
public static BaseParkinfo QueryParkingByParkingID(string ParkingID) { if (string.IsNullOrEmpty(ParkingID)) { throw new ArgumentNullException("villageIds"); } IParking factory = ParkingFactory.GetFactory(); return(factory.QueryParkingByParkingID(ParkingID)); }
public void Update(IParking parking) { Name = parking.Name; LastUpdateDate = parking.LastUpdateDate; TotalPlacesCount = parking.TotalPlacesCount; FreePlacesCount = parking.FreePlacesCount; PreviousFreePlacesCount = parking.PreviousFreePlacesCount; TakenPlacesCount = parking.TakenPlacesCount; ParkingAvailability = parking.ParkingAvailability; }
public static List <BaseParkinfo> QueryParkingByVillageId(string villageId) { if (string.IsNullOrWhiteSpace(villageId)) { throw new ArgumentNullException("villageId"); } IParking factory = ParkingFactory.GetFactory(); return(factory.QueryParkingByVillageId(villageId)); }
public static BaseParkinfo QueryParkingByRecordId(string recordId) { if (string.IsNullOrWhiteSpace(recordId)) { throw new ArgumentNullException("recordId"); } IParking factory = ParkingFactory.GetFactory(); return(factory.QueryParkingByRecordId(recordId)); }
public static List <BaseParkinfo> QueryParkingByRecordIds(List <string> recordIds) { if (recordIds == null || recordIds.Count == 0) { throw new ArgumentNullException("recordIds"); } IParking factory = ParkingFactory.GetFactory(); return(factory.QueryParkingByRecordIds(recordIds)); }
public static List <BaseParkinfo> QueryParkingByCompanyIds(List <string> companyIds) { if (companyIds == null || companyIds.Count == 0) { throw new ArgumentNullException("companyIds"); } IParking factory = ParkingFactory.GetFactory(); return(factory.QueryParkingByCompanyIds(companyIds)); }
public static List <BaseParkinfo> QueryParkingByVillageIds(List <string> villageIds) { if (villageIds == null || villageIds.Count == 0) { throw new ArgumentNullException("villageIds"); } IParking factory = ParkingFactory.GetFactory(); return(factory.QueryParkingByVillageIds(villageIds)); }
public int Save(IParking parking) { if (parking.Id == 0) { parking.Id = lastId; lastId++; } Parkings.Add(parking.Id, parking); return(parking.Id); }
/// <summary> /// 修改车场结算配置 /// </summary> /// <param name="model"></param> /// <returns></returns> public static bool UpdateParkSettleConfig(BaseParkinfo model) { IParking factory = ParkingFactory.GetFactory(); bool result = factory.UpdateParkSettleConfig(model); if (result) { OperateLogServices.AddOperateLog <BaseParkinfo>(model, OperateType.Update); } return(result); }
public static int UpdateCarBit(string PKID) { IParking factory = ParkingFactory.GetFactory(); int result = factory.UpdateCarBit(PKID); if (result > 0) { OperateLogServices.AddOperateLog(OperateType.Update, string.Format("PKID:{0}", PKID)); } return(result); }
public static List <BaseParkinfo> QueryPage(string villageId, int pageIndex, int pageSize, out int totalCount) { IParking factory = ParkingFactory.GetFactory(); List <BaseParkinfo> parkings = factory.QueryPage(villageId, pageIndex, pageSize, out totalCount); IParkArea factoryArea = ParkAreaFactory.GetFactory(); foreach (var item in parkings) { item.CarBitNum = factoryArea.GetCarBitNumByParkingId(item.PKID); } return(parkings); }
static void Main(string[] args) { ISettings settings = SetSettings(Settings.Instance); IParking parking = Parking.Instance; parking.SetSettings(settings, new FileLogger("Transactions.log")); foreach (var car in GetCars()) { parking.AddCar(car); } Menu menu = new Menu(); menu.MainMenu(parking); }
public void Statistics_DailyGather(DateTime start, DateTime end) { try { IParking iparking = ParkingFactory.GetFactory(); string strerror = string.Empty; List <BaseParkinfo> parks = iparking.QueryParkingAll(); if (parks == null || parks.Count == 0) { return; } end = end.Date.AddHours(23).AddMinutes(59); //循环车场 foreach (BaseParkinfo p in parks) { //如果在线上统计,则本地就不统计 if (p.IsOnLineGathe == YesOrNo.Yes) { continue; } List <ParkGate> gatelist = ParkGateServices.QueryByParkingId(p.PKID); TimeSpan ts = end - start; //统计近8天的数据 for (int i = ts.Days; i >= 0; i--) { try { new DailyGatherServices().Statistics_DailyByHour(p, end, i); } catch (Exception ex) { Common.Services.TxtLogServices.WriteTxtLog("按时统计异常 异常信息:{0}", ex.Message); } //按通道统计时数据 try { new GateGatherServices().Statistics_DailyByGate(gatelist, p, end, i); } catch (Exception ex) { Common.Services.TxtLogServices.WriteTxtLog("按通道统计异常 异常信息:{0}", ex.Message); } } } } catch (Exception ex) { Common.Services.TxtLogServices.WriteTxtLog("按日统计异常 异常信息:{0}", ex.Message); } }
public void MainMenu(IParking parking) { _parking = parking; bool exitMenu = false; var startTimeSpan = TimeSpan.Zero; var periodTimeSpan = TimeSpan.FromSeconds(parking.Settings.Timeout); Timer parkingPaymentTimer = null; Timer logTransactionTimer = null; try { parkingPaymentTimer = new Timer((e) => { parking.GetPaymentFromCar(); }, null, periodTimeSpan, periodTimeSpan); logTransactionTimer = new Timer((e) => { parking.LogTransactionEveryMinute(); }, null, TimeSpan.FromMinutes(1), TimeSpan.FromMinutes(1)); var menu = BuildMainMenu(); while (!exitMenu) { DisplayMainMenu(menu); var menuChoice = GetMenuSelection(menu); menuChoice.ItemHandler?.Invoke(); exitMenu = menuChoice.IsExitOption; } } finally { if (parkingPaymentTimer != null) { parkingPaymentTimer.Dispose(); } if (logTransactionTimer != null) { logTransactionTimer.Dispose(); } } }
//[SwaggerImplementationNotes("取得所有公車路線")] public IHttpActionResult GetParking() { //Initial IHttpActionResult responseResult; IParking repos = DataFactory.ParkingRepository(); //序列化撈出來的資料 var jsonSerialize = JsonConvert.SerializeObject(repos.GetOutParkingInfo()); //做成JSON字串包裝到最後輸出 StringContent responseMsgString = new StringContent(jsonSerialize, System.Text.Encoding.UTF8, "application/json"); HttpResponseMessage responseMsg = new HttpResponseMessage() { Content = responseMsgString }; responseResult = ResponseMessage(responseMsg); return(responseResult); }
public static ParkingAvailability CalculateParkingAvailability(this IParking parking) { var onePercent = (double)parking.TotalPlacesCount / 100; if (parking.FreePlacesCount == 0) { return(ParkingAvailability.None); } if (parking.FreePlacesCount <= (int)(onePercent * 10)) { return(ParkingAvailability.Low); } else if (parking.FreePlacesCount <= (int)(onePercent * 30)) { return(ParkingAvailability.Medium); } else { return(ParkingAvailability.High); } }