示例#1
0
        private string GetCsvValue(DataTree schema, DataTree dataTreeDoc, string csvField)
        {
            string csvValue = (string)dataTreeDoc[csvField];

            try
            {
                if (dataTreeDoc.Contains("__" + csvField + "__displayname"))
                {
                    csvValue = dataTreeDoc["__" + csvField + "__displayname"];
                }
                else if ((string)schema["type"] == "datetime")
                {
                    csvValue = this.formatDate((DateTime)dataTreeDoc[csvField]);
                }
                else if ((string)schema["type"] == "int" && schema["inttype"] == "timespan")
                {
                    csvValue = formatTimespan((int)dataTreeDoc[csvField]);
                }
            }
            catch (Exception e)
            {
                logger.LogError("Failed to export csv value", e, csvField, dataTreeDoc.ContentView());
            }

            return(csvValue);
        }
示例#2
0
        /// <summary>
        /// Writes annotated hours to disk. Modifies provided hour data. Expects data handled previously by
        /// WriteAnnotatedHoursToDisk.
        /// </summary>
        /// <param name="hourData"></param>
        private void WriteAnnotatedTotalHoursToDisk(DataTree hourData)
        {
            DirectoryInfo di = new DirectoryInfo(filePath);

            if (!di.Exists)
            {
                di.Create();
            }

            foreach (DataTree user in hourData)
            {
                var totals = new DataTree();

                foreach (DataTree date in user)
                {
                    foreach (DataTree payType in date)
                    {
                        List <DataTree> entriesToRemove = new List <DataTree>();

                        foreach (DataTree entryType in payType)
                        {
                            if (entryType.Name == "lunchbreak")
                            {
                                continue;
                            }

                            DataTree total = totals[payType.Name][entryType.Name].Create();

                            if (total.Empty)
                            {
                                total.Value = (decimal)0;
                            }

                            total.Value = (decimal)total + (decimal)entryType;
                        }
                    }
                }

                // Clear existing user data and merge totals
                user.Clear();
                user.Merge(totals);
            }


            logger.LogInfo("Saving annotated totals data to disk.", exportFileNameAnnotated);

            try
            {
                byte[] utfBytes = Encoding.UTF8.GetBytes(hourData.ContentView());
                ExportFileAnnotatedTotals.Write(utfBytes, 0, utfBytes.Count());
            }
            catch (Exception ex)
            {
                logger.LogError("Failed to export hour data.", ex);
            }
        }
示例#3
0
        /// <summary>
        /// Writes annotated hours to disk. Modifies provided hour data.
        /// </summary>
        /// <param name="hourData"></param>
        private void WriteAnnotatedHoursToDisk(DataTree hourData)
        {
            DirectoryInfo di = new DirectoryInfo(filePath);

            if (!di.Exists)
            {
                di.Create();
            }

            foreach (DataTree user in hourData)
            {
                foreach (DataTree date in user)
                {
                    foreach (DataTree payType in date)
                    {
                        List <DataTree> entriesToRemove = new List <DataTree>();

                        foreach (DataTree entryType in payType)
                        {
                            // Remove empty hours, euros etc. from annotated data.
                            if (entryType.Value.ToString() == "0")
                            {
                                entriesToRemove.Add(entryType);
                            }
                        }

                        foreach (DataTree entryToRemove in entriesToRemove)
                        {
                            entryToRemove.Remove();
                        }
                    }
                }

                // Sort based on date
                user.Sort();
            }

            // Remove after previous loop to prevent chnaging data while iterating.
            foreach (DataTree user in hourData)
            {
                user["profitcenter"].Remove();
            }

            logger.LogInfo("Saving annotated data to disk.", exportFileNameAnnotated);

            try
            {
                byte[] utfBytes = Encoding.UTF8.GetBytes(hourData.ContentView());
                ExportFileAnnotated.Write(utfBytes, 0, utfBytes.Count());
            }
            catch (Exception ex)
            {
                logger.LogError("Failed to export hour data.", ex);
            }
        }
示例#4
0
        private void ApplySchemaAndConfiguration()
        {
            logger.LogDebug("Applying www-front server configuration.");

            frontServerConfiguration = new DataTree();
            frontServerConfiguration.Merge(Message.Parent[MongoDBHandlerConstants.mongodbhandler]["configuration"]);

            useErpUpdateTable = (bool)frontServerConfiguration["application"]["features"]["useerpupdatetable"];

            logger.LogTrace("Applied www-front server configuration", (frontServerConfiguration.ContentView()));

            VerifySocialProject();
        }
示例#5
0
        public MC2Value timesheetentrydetailpaytype()
        {
            DataTree historyEntry = Runtime.HistoryManager.GetCurrentHistoryEntry();

            string text = historyEntry.ContentView();

            if (!string.IsNullOrEmpty(Runtime.SessionManager.Session["scriptedvalues"]["addtimesheetentryform"]["selecteduser"]))
            {
                // Get cla contract for selected user and figure out which paytypes to show
            }

            return("");
        }
示例#6
0
        private string GetExcelFormat(DataTree schema, DataTree dataTreeDoc, string field)
        {
            string excelFormat = "";

            try
            {
                if ((string)schema["type"] == "datetime")
                {
                    excelFormat = "d/M/yyyy";
                }
            }
            catch (Exception e)
            {
                logger.LogError("Failed to export csv value", e, field, dataTreeDoc.ContentView());
            }

            return(excelFormat);
        }
示例#7
0
        private dynamic GetExcelValue(DataTree schema, DataTree dataTreeDoc, string field)
        {
            dynamic excelValue = "";

            try
            {
                if (dataTreeDoc.Contains("__" + field + "__displayname"))
                {
                    excelValue = dataTreeDoc["__" + field + "__displayname"];
                }
                else if ((string)schema["type"] == "datetime")
                {
                    excelValue = this.formatDate((DateTime)dataTreeDoc[field]);
                }
                else if ((string)schema["type"] == "int" && schema["inttype"] == "timespan")
                {
                    int timespan = (int)dataTreeDoc[field];
                    int hours    = timespan / (1000 * 60 * 60);
                    excelValue = hours;
                }
                else if ((string)schema["type"] == "int")
                {
                    excelValue = (int)dataTreeDoc[field];
                }
                else
                {
                    excelValue = (string)dataTreeDoc[field];
                }
            }
            catch (Exception e)
            {
                logger.LogError("Failed to export csv value", e, field, dataTreeDoc.ContentView());
            }

            return(excelValue);
        }