private byte[] BuildCreateCounterMeasure(CounterMeasure cm) { Log.AddLog(LogType.FL_MSG, "tx FLPACKET_SERVER_CREATECOUNTER objid={0}", cm.Objid); byte[] omsg = { 0x2D, 0x02 }; FLMsgType.AddUInt32(ref omsg, cm.munition_arch.ArchetypeID); FLMsgType.AddUInt32(ref omsg, cm.Objid); FLMsgType.AddUInt32(ref omsg, 0); FLMsgType.AddUInt32(ref omsg, cm.owner_objid); FLMsgType.AddUInt16(ref omsg, cm.hpid); Quaternion q = Quaternion.MatrixToQuaternion(cm.Orientation); FLMsgType.AddFloat(ref omsg, (float)q.I); FLMsgType.AddFloat(ref omsg, (float)q.J); FLMsgType.AddFloat(ref omsg, (float)q.K); FLMsgType.AddFloat(ref omsg, (float)q.W); FLMsgType.AddFloat(ref omsg, (float)cm.Position.x); FLMsgType.AddFloat(ref omsg, (float)cm.Position.y); FLMsgType.AddFloat(ref omsg, (float)cm.Position.z); FLMsgType.AddFloat(ref omsg, (float)cm.velocity.x); FLMsgType.AddFloat(ref omsg, (float)cm.velocity.y); FLMsgType.AddFloat(ref omsg, (float)cm.velocity.z); FLMsgType.AddFloat(ref omsg, (float)cm.angular_velocity.x); FLMsgType.AddFloat(ref omsg, (float)cm.angular_velocity.y); FLMsgType.AddFloat(ref omsg, (float)cm.angular_velocity.z); return(omsg); }
/// <summary> /// Method to convert Counter Measure Entity to Counter Measure Item DTO /// </summary> /// <param name="counterMeasure"></param> /// <returns></returns> public static CounterMeasureItem ConvertCounterMeasureToCounterMeasureItemDTO( CounterMeasure counterMeasure) { var counterMeasureItem = new CounterMeasureItem() { Id = counterMeasure.Id, MetricName = counterMeasure.Metric.Name, Issue = counterMeasure.Issue, Action = counterMeasure.Action, OpenedDate = counterMeasure.CreatedOn.Date, AssignedTo = counterMeasure.AssignedUser.AccountName, AssignedUserName = counterMeasure.AssignedUser.FirstName + " " + counterMeasure.AssignedUser.LastName + "(" + counterMeasure.AssignedUser.AccountName + ")", DueDate = counterMeasure.DueDate.Date, CounterMeasureStatusId = counterMeasure.CounterMeasureStatusId, CounterMeasureStatusName = counterMeasure.CounterMeasureStatus?.Status, CounterMeasurePriorityId = counterMeasure.CounterMeasurePriorityId, CounterMeasurePriorityName = counterMeasure.CounterMeasurePriority?.Name, CommentsCount = counterMeasure.CounterMeasureComments.Count, Comments = counterMeasure.CounterMeasureComments.Select(c => c.Comment) }; return(counterMeasureItem); }
/// <summary> /// Add a new counter measure for a metric which belongs to a score card and KPI /// </summary> /// <param name="counterMeasureRequest">new counter measure entry</param> /// <param name="userName">Logged in user name</param> public void AddCounterMeasure(CounterMeasureAddRequest counterMeasureRequest, string userName) { ValidateCounterMeasureDueDate(counterMeasureRequest.DueDate); // Get logged in user id int loggedInUserId = userRepository.GetAll().FirstOrDefault( x => x.AccountName == userName).Id; // If the assigned user is not added to NDMS users table, add it here var assignedUserIds = userRepository.AddADUsersToNDMS(new List <string>() { counterMeasureRequest.AssignedTo }); var counterMeasure = new CounterMeasure() { ScorecardId = counterMeasureRequest.ScorecardId.Value, KPIId = counterMeasureRequest.KPIId.Value, MetricId = counterMeasureRequest.MetricId.Value, Issue = counterMeasureRequest.Issue, Action = counterMeasureRequest.Action, AssignedTo = assignedUserIds.First(), DueDate = counterMeasureRequest.DueDate, CounterMeasureStatusId = counterMeasureRequest.CounterMeasureStatusId.Value, CounterMeasurePriorityId = counterMeasureRequest.CounterMeasurePriorityId != null ? counterMeasureRequest.CounterMeasurePriorityId.Value: (int?)null, CreatedBy = loggedInUserId, LastModifiedBy = loggedInUserId, CreatedOn = TimeZoneUtility.GetCurrentTimestamp(), LastModifiedOn = TimeZoneUtility.GetCurrentTimestamp(), CounterMeasureComments = !string.IsNullOrEmpty(counterMeasureRequest.Comment) ? new List <CounterMeasureComment>() { CounterMeasureConverters. ConvertCommentToCounterMeasureComment(counterMeasureRequest.Comment, loggedInUserId) } : null }; counterMeasureRepository.AddOrUpdate(counterMeasure); counterMeasureRepository.Save(); }