예제 #1
0
        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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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();
        }