public static void Test(Controller autd) { var config = new SilencerConfig(); autd.Send(config); const double x = Controller.DeviceWidth / 2; const double y = Controller.DeviceHeight / 2; const double z = 150; var center = new Vector3d(x, y, z); var g1 = new Focus(center); var g2 = new GSPAT(); g2.Add(center + new Vector3d(30.0, 0.0, 0.0), 1.0); g2.Add(center - new Vector3d(30.0, 0.0, 0.0), 1.0); var gain = new Grouped(autd); gain.Add(0, g1); gain.Add(1, g2); var mod = new Sine(150); // AM sin 150 Hz autd.Send(mod, gain); }
private async Task SortDataAsync() { _userSelf = await _requestService.GetAsync <UserInfoContract>("api/UserInfoSelf"); ContactSearchRequestFriends.Clear(); MutualFriends.Clear(); PendingFriends.Clear(); InitiatedRequestFriends.Clear(); var entire = await _friendRequestService.GetAllFriendRequestsAsync(); var initiated = entire.Where(f => f.InitiatorId.Equals(_userSelf.Id) && !f.TargetId.Equals(_userSelf.Id)).ToList(); var targeted = entire.Where(f => f.TargetId.Equals(_userSelf.Id) && !f.InitiatorId.Equals(_userSelf.Id)).ToList(); // first scan through inbound requests, // if there is also an initiated request, becomes mutual, // otherwise, it is a pending request foreach (var req in targeted) { var initiatorInfo = await _userInfoService.GetUserInfoAsync(req.InitiatorId); if (initiated.Any(f => f.TargetId.Equals(req.InitiatorId))) { MutualFriends.Add(new FriendViewCellModel(initiatorInfo, req.TimeStamp, req.Type ?? FriendRequestType.Normal, FriendStatus.Mutual)); } else { PendingFriends.Add(new FriendViewCellModel(initiatorInfo, req.TimeStamp, req.Type ?? FriendRequestType.Normal, FriendStatus.PendingRequest)); } } // scan through the initiated requests, // ignoring requests that have a matching target record, // these should have already been placed into mutual foreach (var req in initiated) { if (!targeted.Any(f => f.InitiatorId.Equals(req.TargetId))) { var targetInfo = await _userInfoService.GetUserInfoAsync(req.TargetId); InitiatedRequestFriends.Add(new FriendViewCellModel(targetInfo, req.TimeStamp, req.Type ?? FriendRequestType.Normal, FriendStatus.Initiated)); } } Grouped.Clear(); GroupedFriendModel csg = new GroupedFriendModel() { LongName = "Your Contacts", ShortName = "C" }; if (_includeImportedContacts) { foreach (var mv in ContactSearchRequestFriends.OrderBy(m => m.FirstAndLastName)) { csg.Add(mv); } } GroupedFriendModel pg = new GroupedFriendModel() { LongName = "Pending Friend Requests", ShortName = "P" }; foreach (var pv in PendingFriends.OrderBy(m => m.FirstAndLastName)) { pg.Add(pv); } GroupedFriendModel mg = new GroupedFriendModel() { LongName = "Mutual Friends", ShortName = "M" }; foreach (var mv in MutualFriends.OrderBy(m => m.FirstAndLastName)) { mg.Add(mv); } GroupedFriendModel ig = new GroupedFriendModel() { LongName = "Waiting for Response", ShortName = "W" }; foreach (var iv in InitiatedRequestFriends.OrderBy(m => m.FirstAndLastName)) { ig.Add(iv); } if (_includeImportedContacts) { Grouped.Add(csg); } Grouped.Add(pg); Grouped.Add(mg); Grouped.Add(ig); }
private void FilterGroupsBySearch() { Grouped.Clear(); GroupedFriendModel csg = new GroupedFriendModel() { LongName = "Your Contacts", ShortName = "C" }; GroupedFriendModel pg = new GroupedFriendModel() { LongName = "Pending Friend Requests", ShortName = "P" }; GroupedFriendModel mg = new GroupedFriendModel() { LongName = "Mutual Friends", ShortName = "M" }; GroupedFriendModel ig = new GroupedFriendModel() { LongName = "Waiting for Response", ShortName = "W" }; if (String.IsNullOrEmpty(SearchEntry)) { if (_includeImportedContacts) { foreach (var mv in ContactSearchRequestFriends.OrderBy(m => m.FirstAndLastName)) { csg.Add(mv); } } foreach (var pv in PendingFriends.OrderBy(m => m.FirstAndLastName)) { pg.Add(pv); } foreach (var mv in MutualFriends.OrderBy(m => m.FirstAndLastName)) { mg.Add(mv); } foreach (var iv in InitiatedRequestFriends.OrderBy(m => m.FirstAndLastName)) { ig.Add(iv); } } else { if (_includeImportedContacts) { foreach (var mv in ContactSearchRequestFriends .Where(p => p.UserName .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase) || p.FirstName .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase) || p.LastName .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase) || p.PhoneNumber .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase)) .OrderBy(m => m.FirstAndLastName)) { csg.Add(mv); } } foreach (var pv in PendingFriends .Where(p => p.UserName .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase) || p.FirstName .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase) || p.LastName .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase) || p.PhoneNumber .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase)) .OrderBy(m => m.FirstAndLastName)) { pg.Add(pv); } foreach (var mv in MutualFriends .Where(p => p.UserName .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase) || p.FirstName .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase) || p.LastName .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase) || p.PhoneNumber .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase)) .OrderBy(m => m.FirstAndLastName)) { mg.Add(mv); } foreach (var iv in InitiatedRequestFriends .Where(p => p.UserName .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase) || p.FirstName .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase) || p.LastName .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase) || p.PhoneNumber .StartsWith(SearchEntry, StringComparison.OrdinalIgnoreCase)) .OrderBy(m => m.FirstAndLastName)) { ig.Add(iv); } } if (_includeImportedContacts) { Grouped.Add(csg); } Grouped.Add(pg); Grouped.Add(mg); Grouped.Add(ig); }
/// ------------------------------------------------------------------------------------------------ /// ------------------------------------------------------------------------------------------------ #region Private functions /// <summary> /// Load Request list view /// </summary> private void Load_Case() { try { _cellHeight = 0; _recordIndex = 0; int reqindcheck = 0; _index = new List <Tuple <int, int, int> >(); _lstReqIndex = new List <int>(); PropertyMapping temp = PropertyMappingFromIndex(_initialSectionIndex); //To get the property mapping for (int i = 1; i < temp.ActiveExpanded.Count; i++) { _propertyIndex = temp.ActiveExpanded[1].Property; var requestGroup = temp.ActiveExpanded[i].RequestGroup; if (requestGroup != null) { _requestIndex = requestGroup.Value; } if (temp.ActiveExpanded[i].Record != null) { _recordIndex = temp.ActiveExpanded[i].Record.Value; if (!_lstReqIndex.Contains(_requestIndex)) { _lstReqIndex.Add(_requestIndex); //Request Group index list } _index.Add(Tuple.Create(temp.ActiveExpanded[i].Property, _requestIndex, _recordIndex)); //To get the index mapping of request group } } foreach (var record in LstRequestGroup) { int recordHeight = 0; int reqGrpIndex = _lstReqIndex[reqindcheck]; SriRequestGrp = new GroupedRequestGroupModel() { GroupName = record.Name }; if (record.Records.Count > 0) { //filter mode is ALL if (AppData.PropertyModel.Filter == FilterMode.All || AppData.PropertyModel.Filter == FilterMode.Complete || AppData.PropertyModel.Filter == FilterMode.Incomplete) { List <int> lstRecIndex = new List <int>(); foreach (Tuple <int, int, int> tupleindex in _index) { if (tupleindex.Item1 == _propertyIndex && tupleindex.Item2 == reqGrpIndex) { lstRecIndex.Add(tupleindex.Item3);//Records index list } } for (int i = 0; i < (record.Records.Count > 1 ? record.TempRecords.Count : record.Records.Count); i++) { SriRequestGrp.Add(new SRiRequestGroupModel() { GroupDetails = record.Records.Count > 1 ? record.TempRecords[i].Record.Details : record.Records[i].Record.Details ?? "No details given", TargetResponseDate = record.Records.Count > 1 ? record.TempRecords[i].Record.TargetResponseDate.ToDateString() : record.Records[i].Record.TargetResponseDate.ToDateString(), ShortIndex = new ShortIndexMapping(_initialSectionIndex, reqGrpIndex, lstRecIndex[i], _propertyIndex), GrayLine = (record.Records.Count > 1 ? record.TempRecords.Count - 1 : record.Records.Count - 1) != i, // To set the gray line between records of same groupname, UploadStatusImage = GetSyncStatus(record.Records.Count > 1 ? record.TempRecords[i].Record.Status : record.Records[i].Record.Status) }); recordHeight++; } _cellHeight++; Grouped.Add(SriRequestGrp); } #region future check //fileter mode is Complete else if (AppData.PropertyModel.Filter == FilterMode.Complete) { List <int> recIndex = new List <int>(); for (int s = 0; s < _index.Count; s++) { if (_index[s].Item1 == _propertyIndex && _index[s].Item2 == reqGrpIndex) { recIndex.Add(_index[s].Item3); } } for (int i = 0; i < record.Records.Count; i++) { SriRequestGrp.Add(new SRiRequestGroupModel() { GroupDetails = record.Records[i].Record.Details ?? "No details given", TargetResponseDate = record.Records[i].Record.TargetResponseDate.ToDateString(), ShortIndex = new ShortIndexMapping(_initialSectionIndex, reqGrpIndex, recIndex[i], _propertyIndex), GrayLine = (record.Records.Count - 1) != i // To set the gray line between records of same groupname }); } _cellHeight++; Grouped.Add(SriRequestGrp); } //fileter mode is Incomplete else { List <int> recIndex = new List <int>(); for (int s = 0; s < _index.Count; s++) { if (_index[s].Item1 == _propertyIndex && _index[s].Item2 == reqGrpIndex) { recIndex.Add(_index[s].Item3); } } for (int i = 0; i < record.Records.Count; i++) { SriRequestGrp.Add(new SRiRequestGroupModel() { GroupDetails = record.Records[i].Record.Details ?? "No details given", TargetResponseDate = record.Records[i].Record.TargetResponseDate.ToDateString(), ShortIndex = new ShortIndexMapping(_initialSectionIndex, reqGrpIndex, recIndex[i], _propertyIndex), GrayLine = (record.Records.Count - 1) != i // To set the gray line between records of same groupname }); } _cellHeight++; Grouped.Add(SriRequestGrp); } #endregion var height = recordHeight == 2 ? recordHeight * Device.OnPlatform <double>(38, 38, 36) : 0; HeightRequest = (_cellHeight * Device.OnPlatform <double>(108, 108, 124)) + height; //To Fix the height of listgroup } reqindcheck++; } GC.Collect(); } catch (Exception ex) { LogTracking.LogTrace(ex.ToString()); } }