Beispiel #1
0
 public JobControl()
 {
     InitializeComponent();
     addClearButton();
     addSendToWorkerMenuItems();
     addSendToTemporaryWorkerMenuItem();
     jobQueue.RequestJobDeleted = new RequestJobDeleted(this.DeleteJob);
     summary = new WorkerSummary(this);
 }
Beispiel #2
0
 public JobControl()
 {
     InitializeComponent();
     mainForm = MainForm.Instance;
     AddClearButton();
     AddSendToTemporaryWorkerMenuItem();
     globalJobQueue.RequestJobDeleted = new RequestJobDeleted(this.DeleteJob);
     summary = new WorkerSummary();
 }
        public static WorkerSummary CreateWorkerSummary(string personnelNumber,
                                                        global::System.DateTimeOffset validFrom,
                                                        global::System.DateTimeOffset validTo,
                                                        global::System.DateTimeOffset originalHireDateTime,
                                                        global::System.DateTimeOffset anniversaryDateTime,
                                                        global::System.DateTimeOffset seniorityDate,
                                                        global::Microsoft.Dynamics.DataEntities.Worker worker)
        {
            WorkerSummary workerSummary = new WorkerSummary();

            workerSummary.PersonnelNumber      = personnelNumber;
            workerSummary.ValidFrom            = validFrom;
            workerSummary.ValidTo              = validTo;
            workerSummary.OriginalHireDateTime = originalHireDateTime;
            workerSummary.AnniversaryDateTime  = anniversaryDateTime;
            workerSummary.SeniorityDate        = seniorityDate;
            if ((worker == null))
            {
                throw new global::System.ArgumentNullException("worker");
            }
            workerSummary.Worker = worker;
            return(workerSummary);
        }
Beispiel #4
0
        private static Panel ProcessWorkerSummary(WorkerSummary summaryLog)
        {
            var summaryPanel = new Panel();
            var properties   = summaryLog.GetType().GetProperties();
            List <WorkerSummary> children = null;

            var name = properties.FirstOrDefault(p => p.Name == "WorkerName");

            if (name != null)
            {
                summaryPanel.Controls.Add(new Label
                {
                    Text =
                        string.Format("<h2>{0}<br /></h2>",
                                      name.GetValue(summaryLog))
                });
            }

            foreach (var prop in properties.OrderBy(p => p.Name).Where(prop => prop != name && prop.IsBrowsable()))
            {
                if (prop.PropertyType == typeof(List <WorkerSummary>))
                {
                    children = prop.GetValue(summaryLog) as List <WorkerSummary>;
                    continue;
                }

                if (typeof(IEnumerable).IsAssignableFrom(prop.PropertyType) && prop.PropertyType.IsGenericType)
                {
                    var values    = (IEnumerable)prop.GetValue(summaryLog);
                    var count     = values.Cast <object>().Count();
                    var labelText = count > 25
                        ? count + " instances. Please see log file for details."
                        : values.Cast <object>()
                                    .Aggregate(string.Empty,
                                               (current, val) =>
                                               current
                                               + ("&nbsp; &nbsp; &nbsp; &nbsp;" + val.ToString().HtmlLineBreakify() + "<br />"));

                    if (string.IsNullOrWhiteSpace(labelText))
                    {
                        continue;
                    }

                    summaryPanel.Controls.Add(new Label
                    {
                        Text =
                            string.Format("{0}:<br />{1}", prop.Name.Spacify(),
                                          labelText)
                    });
                }
                else
                {
                    var value = prop.GetValue(summaryLog);
                    if (value == null)
                    {
                        continue;
                    }

                    var stringValue = value.ToString();
                    if (value is Enum)
                    {
                        stringValue = value.ToString().Spacify();
                    }

                    summaryPanel.Controls.Add(new Label
                    {
                        Text =
                            string.Format("{0}: {1}<br />", prop.Name.Spacify(),
                                          stringValue.HtmlLineBreakify())
                    });
                }
            }

            if (children == null)
            {
                return(summaryPanel);
            }

            foreach (var child in children)
            {
                summaryPanel.Controls.Add(ProcessWorkerSummary(child));
            }

            return(summaryPanel);
        }