public override void ChannelClicked(object sender, PhoneEventArgs <HostPhoneViewModel> e) { ProcessMessageInController(e); if (e.Handled) { return; } var item = e.Item; if (this.HasConference == true) { e.Handled = true; return; } if (e.Item.Status == ePhoneStatus.Ring && this.ClientApp.Channels.PO.Status == ePOStatus.OffHook) { var list = this.Controllers.OfType <ICallController>().Where(c => c.IsHolding == false).ToList(); foreach (var c in list) { c.Finalise(); } AddController(new InCallController(this.ClientApp, e.Item)); } else { base.ChannelClicked(sender, e); } }
public override void UnitClicked(object sender, PhoneEventArgs <UnitPhoneViewModel> e) { if (this.ClientApp.Channels.PO.Status == ePOStatus.OnHook) { return; } var mem = GetAllMembers().FirstOrDefault(m => m.Unit.Id == e.Item.Id); if (this.Issued) { var connectedMembers = GetConnectedMembers(); if (connectedMembers.All(m => m.AlertStatus == AlertMemberStatus.ReceivingCommand)) { foreach (var m in connectedMembers) { m.AlertStatus = AlertMemberStatus.WaitForReport; } } } if (mem != null && this.SelectedMember != mem && mem.AlertStatus != AlertMemberStatus.CanNotConnect) { this.SelectedMember = mem; } else { this.SelectedMember = null; } this.ActiveController = this.SelectedMember; e.Handled = true; }
public override void UnitClicked(object sender, PhoneEventArgs <UnitPhoneViewModel> e) { ProcessMessageInController(e); if (e.Handled) { return; } if (this.HasConference == true) { e.Handled = true; return; } var item = e.Item; switch (e.Item.Status) { case ePhoneStatus.Free: this.ClientApp.Service.Request(item.ResourceType, item.Id); break; case ePhoneStatus.Occupied: break; case ePhoneStatus.Selected: ReleaseResource(item); break; case ePhoneStatus.Dial: break; case ePhoneStatus.Speaking: break; case ePhoneStatus.Listening: break; case ePhoneStatus.Holding: break; case ePhoneStatus.Ring: if (this.ClientApp.Channels.PO.Status == ePOStatus.OffHook && CanReceiveCall) { var list = this.Controllers.OfType <ICallController>().Where(c => c.IsHolding == false); if (!list.Any()) { var channel = this.ClientApp.GetChannels(c => c.Status == ePhoneStatus.Ring && c.CallerId != null && c.CallerId.Contains(e.Item.GetFullNumber())).FirstOrDefault(); if (channel != null) { AddController(new InCallController(this.ClientApp, channel, e.Item)); } } return; } break; } }
public override void ChannelClicked(object sender, PhoneEventArgs <HostPhoneViewModel> e) { ProcessMessageInController(e); if (e.Handled) { return; } var item = e.Item; if (this.HasConference == true) { e.Handled = true; return; } switch (e.Item.Status) { case ePhoneStatus.Selected: this.ClientApp.Service.Release(item.ResourceType, item.Id); break; case ePhoneStatus.Free: ReleaseAllFreeChannels(); // Hot line if (item.HostPhone.HotUnitId.HasValue) { ReleaseAllFreeUnits(); var hu = this.ClientApp.Units.Items.FirstOrDefault(u => u.Id == item.HostPhone.HotUnitId.Value); if (hu == null) { this.ClientApp.Units.SetSelectContact(item.HostPhone.HotUnitId.Value); } else { this.ClientApp.Service.Request(eResourceType.UnitPhone, item.HostPhone.HotUnitId.Value); } } this.ClientApp.Service.Request(item.ResourceType, item.Id); break; case ePhoneStatus.Ring: if (this.ClientApp.Channels.PO.Status == ePOStatus.OffHook) { var list = this.Controllers.OfType <ICallController>().Where(c => c.IsHolding == false).ToList(); if (list.Count == 0) { AddController(new InCallController(this.ClientApp, e.Item)); } return; } break; } CheckOutgoingCall(); }
public override void ChannelClicked(object sender, PhoneEventArgs <HostPhoneViewModel> e) { var members = GetAllMembers(); var mem = members.FirstOrDefault(m => m.Channel.Id == e.Item.Id); if (mem != null) { OnMemberClicked(members, mem); e.Handled = true; } }
public override void ChannelClicked(object sender, PhoneEventArgs <HostPhoneViewModel> e) { if (e.Item == this.Channel) { if (this.IsHolding) { Resume(); } else { Finalise(); } e.Handled = true; } }
public override void UnitClicked(object sender, PhoneEventArgs <UnitPhoneViewModel> e) { if (this.Unit != null && e.Item == this.Unit) { if (this.IsHolding) { Resume(); } else { Finalise(); } e.Handled = true; } else if (this.IsHolding == false) { e.Handled = true; } }
public override void UnitClicked(object sender, PhoneEventArgs <UnitPhoneViewModel> e) { base.UnitClicked(sender, e); if (this.Unit == null && e.Item != null) { var unit = e.Item; var hc = this.ClientApp.GetChannels(c => c.HostPhone.HotUnitId == unit.Id).FirstOrDefault(); if (unit.Status == ePhoneStatus.Free && (hc == null || hc == this.Channel) && this.Channel.CanMakeCall(unit.AreaCode, this.ClientApp.RestrictedAreaCodes)) { this.Unit = unit; this.ClientApp.Service.Request(unit.ResourceType, unit.Id); Dial(); } else { this.ClientApp.ShowError(string.Format("Kênh được chọn không thể gọi đến đơn vị {0}", unit.Name)); } e.Handled = true; } }
public override void UnitClicked(object sender, PhoneEventArgs <UnitPhoneViewModel> e) { base.UnitClicked(sender, e); if (e.Handled) { return; } // Hot line var hotChannel = this.ClientApp.GetChannels(c => c.HostPhone.HotUnitId.HasValue && c.HostPhone.HotUnitId.Value == e.Item.Id).FirstOrDefault(); if (hotChannel != null && IsFreeChannel(hotChannel)) { var list = this.Controllers.OfType <CallController>(); foreach (var ctrl in list) { ctrl.Finalise(); } this.ClientApp.Service.Request(eResourceType.Channel, hotChannel.Id); } CheckOutgoingCall(); }
private void View_AddInvoked(object sender, PhoneEventArgs e) { var newPhone = model.Add(e.Phone); view.ShowNewPhone(newPhone); }
private void View_RemoveInvoked(object sender, PhoneEventArgs e) { model.Delete(e.Phone.Id); view.RemovePhone(e.Phone); }
public virtual void UnitClicked(object sender, PhoneEventArgs <UnitPhoneViewModel> e) { }
public virtual void ChannelClicked(object sender, PhoneEventArgs <HostPhoneViewModel> e) { }