public void WhenPositiveNumberIsPassed_It_Gives_Sequence_Of_Numbers() { var expectedSequenceNumbers = new SequenceNumbers() { AllNumbersUptoGivenNumber = new List <string> { "1", "2", "3", "4", "5" }, EvenNumbersUptoGivenNumber = new List <string> { "2", "4" }, OddNumbersUptoGivenNumber = new List <string> { "1", "3", "5" }, FizzBuzzSequenceNumbersUptoGivenNumber = new List <string> { "1", "2", "C", "4", "E" } }; sequenceCalculatorService.CalculateSequence(5).Returns(expectedSequenceNumbers); sequenceCalculatorController = new SequenceCalculatorController(sequenceCalculatorService); var result = sequenceCalculatorController.CalculateSequence(5) as OkNegotiatedContentResult <SequenceNumbers>; result?.Content.Should().BeEquivalentTo(expectedSequenceNumbers); }
public SequenceNumbers CalculateSequence(int number) { var sequenceNumbers = new SequenceNumbers { AllNumbersUptoGivenNumber = _sequenceGenerator.GenerateSequenceFor(number, SequenceType.AllNumbers), EvenNumbersUptoGivenNumber = _sequenceGenerator.GenerateSequenceFor(number, SequenceType.EvenNumbers), OddNumbersUptoGivenNumber = _sequenceGenerator.GenerateSequenceFor(number, SequenceType.OddNumbers), FizzBuzzSequenceNumbersUptoGivenNumber = _sequenceGenerator.GenerateSequenceFor(number, SequenceType.FizzBuzzNumbers) }; return(sequenceNumbers); }
public void SequenceCalculatorServiceReturns_SequenceOf_Odd_Even_AllNumbers_And_FizzBuzzSequence() { var expectedSequenceNumbers = new SequenceNumbers() { AllNumbersUptoGivenNumber = new List <string> { "1", "2", "3", "4", "5" }, EvenNumbersUptoGivenNumber = new List <string> { "2", "4" }, OddNumbersUptoGivenNumber = new List <string> { "1", "3", "5" }, FizzBuzzSequenceNumbersUptoGivenNumber = new List <string> { "1", "2", "C", "4", "E" } }; _sequenceGenerator.GenerateSequenceFor(5, SequenceType.EvenNumbers). Returns(new List <string> { "2", "4" }); _sequenceGenerator.GenerateSequenceFor(5, SequenceType.OddNumbers). Returns(new List <string> { "1", "3", "5" }); _sequenceGenerator.GenerateSequenceFor(5, SequenceType.FizzBuzzNumbers). Returns(new List <string> { "1", "2", "C", "4", "E" }); _sequenceGenerator.GenerateSequenceFor(5, SequenceType.AllNumbers). Returns(new List <string> { "1", "2", "3", "4", "5" }); var result = _sequenceCalculatorService.CalculateSequence(5); result.Should().BeEquivalentTo(expectedSequenceNumbers); }
public string GetProdusenCode() { string code = string.Empty; SequenceNumbers o = new SequenceNumbers(); try { var seq = (from a in _db.SequenceNumbers where a.FormatKode.Contains("PRO") select a).AsNoTracking().First(); string[] namesArray = seq.FormatKode.Split('-'); code = namesArray[0] + (seq.Nilai + 1).ToString("D4"); o = seq; o.Nilai = o.Nilai + 1; o.Date = DateTime.Now.Date; _db.Update(o); } catch { code = string.Empty; } return(code); }
private void Wc_OnPacketArrival(object sender, CaptureEventArgs e) { if (Disposing || IsDisposed || !IsHandleCreated) { return; } if (e.Packet == null || e.Packet.Data == null || e.Packet.Data.Length == 0) { return; } if (e.Packet.LinkLayerType != LinkLayers.Ethernet) { return; } Packet packet = null; try { packet = Packet.ParsePacket(e.Packet.LinkLayerType, e.Packet.Data); } catch (Exception) { return; } var ep = packet as EthernetPacket; if (ep == null) { return; } if (ep.Type != EthernetPacketType.IpV4 && ep.Type != EthernetPacketType.IpV6) { return; } var ip = ep.PayloadPacket as IpPacket; if (ip == null) { return; } var tp = ip.PayloadPacket as TcpPacket; if (tp == null) { return; } if (tp.PayloadData.Length == 0) { return; } IPAddress srcIp = ip.SourceAddress; IPAddress dstIp = ip.DestinationAddress; int srcPort = tp.SourcePort; int dstPort = tp.DestinationPort; BeginInvoke((Action)(() => { lock (PacketsStateStatusLabelLock) { if (ep.Type == EthernetPacketType.IpV6) { Ip6PacketsCount++; } else { Ip4PacketsCount++; } PacketsStatusLabel.Text = string.Format("Packets: {0} IPv4, {1} IPv6", Ip4PacketsCount, Ip6PacketsCount); } })); uint sequenceNumber = tp.SequenceNumber; // --------------------------------------------------------------------------- var sourceIsLocal = IpAddresses.Contains(ip.SourceAddress); var destinationIsLocal = IpAddresses.Contains(ip.DestinationAddress); var direction = TrafficDirection.Local; if (sourceIsLocal && !destinationIsLocal) { direction = TrafficDirection.Out; } else if (!sourceIsLocal && destinationIsLocal) { direction = TrafficDirection.In; } // IPHeader.Data stores the data being carried by the IP datagram. if (SettingsManager.Options.LogEnable) { var index = -1; if (OptionsPanel.SearchPattern != null && OptionsPanel.SearchPattern.Length > 0) { index = ClassLibrary.Text.Helper.IndexOf(tp.PayloadData, OptionsPanel.SearchPattern, 0); } if (index > -1) { // Play "Radio2" sound if "LogEnabled" and "LogSound" check-boxes are checked. if (SettingsManager.Options.LogSound) { var stream = GetIntroSound("Radio2"); if (stream != null) { var player = new AudioPlayer(Handle); player.ChangeAudioDevice(SettingsManager.Options.PlaybackDevice); player.Load(stream); player.Play(); } } // --------------------------------------------- var writer = OptionsPanel.Writer; if (writer != null) { writer.WriteLine("{0:HH:mm:ss.fff}: {1} {2}: {3}:{4} -> {5}:{6} Data[{7}]", DateTime.Now, ep.Type.ToString().ToUpper(), destinationIsLocal ? "In" : "Out", ip.SourceAddress, tp.SourcePort, ip.DestinationAddress, tp.DestinationPort, tp.PayloadData.Length ); var block = JocysCom.ClassLibrary.Text.Helper.BytesToStringBlock( ep.PayloadData, false, true, true); block = JocysCom.ClassLibrary.Text.Helper.IdentText(4, block, ' '); writer.WriteLine(block); writer.WriteLine(""); } } } // ------------------------------------------------------------ // If direction specified, but wrong type then return. if (MonitorItem.FilterDirection != TrafficDirection.None && direction != MonitorItem.FilterDirection) { return; } // If port is specified but wrong number then return. if (MonitorItem.FilterDestinationPort > 0 && tp.DestinationPort != MonitorItem.FilterDestinationPort) { return; } // If process name specified. if (!string.IsNullOrEmpty(MonitorItem.FilterProcessName)) { //var ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties(); //var tcpListenters = ipGlobalProperties.GetActiveTcpListeners(); //var udpListenters = ipGlobalProperties.GetActiveUdpListeners(); //var tcpConnInfoArray = ipGlobalProperties.GetActiveTcpConnections(); //var myEnum = tcpConnInfoArray.GetEnumerator(); //while (myEnum.MoveNext()) //{ // var tcpInfo = (TcpConnectionInformation)myEnum.Current; // Console.WriteLine("Port {0} {1} {2} ", tcpInfo.LocalEndPoint, tcpInfo.RemoteEndPoint, tcpInfo.State); // //usedPort.Add(TCPInfo.LocalEndPoint.Port); //} } var pluginType = MonitorItem.GetType(); var voiceItem = (VoiceListItem)Activator.CreateInstance(pluginType); voiceItem.Load(ip, tp); // If data do not contain XML message then return. if (!voiceItem.IsVoiceItem) { return; } var allowToAdd = true; // If message contains sequence number... if (sequenceNumber > 0) { lock (SequenceNumbersLock) { // Cleanup sequence list by removing oldest numbers.. while (SequenceNumbers.Count > 10) { SequenceNumbers.RemoveAt(0); } // If number is not unique then... if (SequenceNumbers.Contains(sequenceNumber)) { // Don't allow to add the message. allowToAdd = false; } else { // Store sequence number for the future checks. SequenceNumbers.Add(sequenceNumber); } } } if (allowToAdd) { // If default capture filter. if (!IsDetailFilter) { // Restrict filter to improve speed. SetFilter(voiceItem, true); } // Add wow item to the list. Use Invoke to make it Thread safe. this.Invoke((Action <VoiceListItem>)addVoiceListItem, new object[] { voiceItem }); } }