public IEnumerable <ServiceUsage> ReadDepositsByService() { using (var db = DbDelegate()) { var services = db.Set <ServiceDAL>().Select(r => r.SrvcType).Distinct().ToList().OrderBy(s => s); List <ServiceUsage> ret = new List <ServiceUsage>(services.Count()); foreach (string service in services) { var item = new ServiceUsage(); item.ServiceType = service; var srvcOfType = db.Set <ServiceDAL>().Where(r => r.SrvcType == service); item.Count = srvcOfType.Count(); item.DepositAmount = db.Set <ServiceDAL>().Where(r => r.SrvcType == service).Sum(r => r.DepositAmt); ret.Add(item); } return(ret); } }
private void ProcessVoiceService(ServiceUsage svc, double ClutterUserCount, List<User> ClutterUsers, string userProfileName) { int ulUser = 0; int dlUser = 0; this.GetVoiceUserCount(svc, ClutterUserCount, ref ulUser, ref dlUser); this.GeneratorServiceUser(ulUser, svc, ClutterUsers, LinkType.Uplink, userProfileName); this.GeneratorServiceUser(dlUser, svc, ClutterUsers, LinkType.Downlink, userProfileName); }
private void GetVoiceUserCount(ServiceUsage svc, double ClutterUserCount, ref int UlUser, ref int DlUser) { float callNumPerHour = svc.CallNumPerHour; float serviceDuration = svc.ServiceDuration; float num3 = (callNumPerHour * serviceDuration) / 3600f; double ulActivity = 0.0; double dlActivity = 0.0; UnionPsService service = svc.Service as UnionPsService; if (service != null) { ulActivity = service.UlActivity; dlActivity = service.DlActivity; } else { UnionCsService service2 = svc.Service as UnionCsService; ulActivity = service2.UlActivity; dlActivity = service2.DlActivity; } UlUser = Convert.ToInt32((double) (((ClutterUserCount * num3) * ulActivity) * this.m_ScalingFactor)); DlUser = Convert.ToInt32((double) (((ClutterUserCount * num3) * dlActivity) * this.m_ScalingFactor)); }
private void GetDataUserCount(ServiceUsage svc, double ClutterUserCount, ref int UlUser, ref int DlUser) { UnionPsService service = svc.Service as UnionPsService; double num = ((svc.CallNumPerHour * svc.ULVolume) * 8f) / ((service.UlTxEff * service.UlAveThroughputDemand) * 3600f); double num2 = ((svc.CallNumPerHour * svc.DLVolume) * 8f) / ((service.DlTxEff * service.DlAveThroughputDemand) * 3600f); UlUser = Convert.ToInt32((double) ((ClutterUserCount * num) * this.m_ScalingFactor)); DlUser = Convert.ToInt32((double) ((ClutterUserCount * num2) * this.m_ScalingFactor)); }
private User GenNewUser(ServiceUsage svc, LinkType linkType, string userProfileName) { return new User { Id = this.m_UserIdGen++, LinkType = linkType, Service = svc.Service, Terminal = svc.Terminal, Mobility = this.m_Mobility, UserProfile = userProfileName, Priority = 1, IsIndoor = false, Clutter = (this.m_CurrentClutter == null) ? new ClutterInfo(-1, TrafficMapResource.TRAFFICMAP_NAME_BLANK) : new ClutterInfo(this.m_CurrentClutter.Id, this.m_CurrentClutter.Name) }; }
private void GeneratorServiceUser(int UserCount, ServiceUsage svc, List<User> ClutterUsers, LinkType linkType, string userProfileName) { Action<int> action = null; if (this.m_ClutterInfo.Count == 0) { for (int i = 0; i < UserCount; i++) { User user = this.GenNewUser(svc, linkType, userProfileName); ClutterUsers.Add(user); } } else { if (action == null) { action = delegate (int ne) { User item = this.GenNewUser(svc, linkType, userProfileName); item.Idx = ne; ClutterUsers.Add(item); }; } this.GetRandomIdx(this.m_CurrentClutter.PointCount, UserCount).ForEach(action); } }
private bool IsTerminalServiceValid(ref string info, ServiceUsage serviceUsage) { if (this.FindTerminal(serviceUsage.Terminal.Name) == null) { info = string.Format(TrafficMapResource.TRAFFIC_MESSAGE_IMPROPERTY, TrafficModelResource.TRAFFICMODEL_TERMINAL); return false; } if ((this.FindPsService(serviceUsage.Service.Name) == null) && (this.FindCsService(serviceUsage.Service.Name) == null)) { info = string.Format(TrafficMapResource.TRAFFIC_MESSAGE_IMPROPERTY, TrafficModelResource.TRAFFICMODEL_SERVICE); return false; } if (this.FindTerminal(serviceUsage.Terminal.Name).Technology != serviceUsage.NetWorkType) { info = TrafficModelResource.TRAFFICMODEL_SERVICETERMINAL_NETWORKTYPE; return false; } return true; }
private void UserObjectGen(UserMobilityBinding umb, ServiceUsage svcUsg, LinkType linkType, int usrCnt) { for (int i = 0; i < usrCnt; i++) { User user = new User(umb.Mobility, svcUsg.Service, svcUsg.Terminal, linkType, umb.UserProfile.Priority); this.GenUserXY(user); user.Clutter = new ClutterInfo(-1, TrafficMapResource.TRAFFICMAP_NAME_BLANK); user.UserProfile = umb.UserProfile.Name; this.m_UserCollection.Add(user); } }