예제 #1
0
        public static String EmailFormatWorkday(Workday workday)
        {
            String str = "";
            String nl = Environment.NewLine;
            str += "Workday: " + workday.StartTime.ToString("D") + nl + nl;
            str += "Start Work: " + workday.StartTime.ToString("t") + nl + nl;
            TimeSpan breaktime = new TimeSpan();
            foreach (PunchSegment segment in workday.WorkSegments)
            {
                if (segment.SegmentCategory == Category.Break)
                {
                    breaktime += segment.Duration;
                }
                str += segment.StartLabel + ": " + segment.StartTime.ToString("t") + nl;
                if (segment.Duration.TotalMinutes >= 1)
                    str += "-- " + MiscConvert.TimeSpan2String(segment.Duration) + " = " + segment.Duration.TotalHours.ToString("F") + " hrs" + nl;
                str += segment.EndLabel + ": " + segment.EndTime.ToString("t") + nl + nl;
            }

            TimeSpan totalTime = workday.EndTime - workday.StartTime - breaktime;

            str += "End Work: " + workday.EndTime.ToString("t") + nl + nl;
            str += "Work Time (excluding breaks): " + MiscConvert.TimeSpan2String(totalTime) + " = " + totalTime.TotalHours.ToString("F") + " hrs" + nl;
            return str;
        }
예제 #2
0
        public static String EmailFormatWorkday(Workday workday)
        {
            String str = "";
            String nl  = Environment.NewLine;

            str += "Workday: " + workday.StartTime.ToString("D") + nl + nl;
            str += "Start Work: " + workday.StartTime.ToString("t") + nl + nl;
            TimeSpan breaktime = new TimeSpan();

            foreach (PunchSegment segment in workday.WorkSegments)
            {
                if (segment.SegmentCategory == Category.Break)
                {
                    breaktime += segment.Duration;
                }
                str += segment.StartLabel + ": " + segment.StartTime.ToString("t") + nl;
                if (segment.Duration.TotalMinutes >= 1)
                {
                    str += "-- " + MiscConvert.TimeSpan2String(segment.Duration) + " = " + segment.Duration.TotalHours.ToString("F") + " hrs" + nl;
                }
                str += segment.EndLabel + ": " + segment.EndTime.ToString("t") + nl + nl;
            }

            TimeSpan totalTime = workday.EndTime - workday.StartTime - breaktime;

            str += "End Work: " + workday.EndTime.ToString("t") + nl + nl;
            str += "Work Time (excluding breaks): " + MiscConvert.TimeSpan2String(totalTime) + " = " + totalTime.TotalHours.ToString("F") + " hrs" + nl;
            return(str);
        }
예제 #3
0
        public void WorkdayWithZeroFirstInputNegativeDateInputReturnsPoundNum()
        {
            var function = new Workday();
            var result   = function.Execute(FunctionsHelper.CreateArgs(0, -10), this.ParsingContext);

            Assert.AreEqual(eErrorType.Num, ((ExcelErrorValue)result.Result).Type);
        }
예제 #4
0
        Task IWorkdayGrain.PutWorkday(Workday source)
        {
            if (source.Month < 1 || source.Month > 12)
            {
                throw new ValidationException(String.Format("咱这可没{0}月份唉!", source.Month));
            }
            if (source.Days < 1 || source.Days > 31)
            {
                throw new ValidationException("躺平和加班一样糟糕,最好对标法定工作日哦!");
            }

            Workday workday = Kernel[source.Month];

            if (workday.Days == 0)
            {
                workday.Apply(Workday.Set(p => p.Days, source.Days));
                workday.InsertSelf();
            }
            else
            {
                workday.UpdateSelf(source);
            }

            return(Task.CompletedTask);
        }
예제 #5
0
        public static String ItemiseWorkday2(Workday workday)
        {
            StringBuilder sb = new StringBuilder();
            DurationConverter dc = new DurationConverter();
            sb.Append("<h1 style=\"font-size: 46px; font-weight: normal; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\">" +
            "timecard for " + workday.StartTime.ToString("D") + "</h1>\n" +
            "<h2 style=\"font-weight: normal; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\">" +
            "Generated by <a href=\"BLAH BLAH BLAH\">Timecard</a> for Windows Phone 7</h2>\n");
            sb.Append("<div style=\"width: 250px; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\" >\n");
            sb.Append("<div style=\"font-size: 25px; font-weight: bold; color: #1BA1E2;\">" + workday.StartTime.ToString("t") + "</div>\n");
            sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">Start Work</div>\n");
            TimeSpan TotalDuration = workday.EndTime - workday.StartTime;
            foreach (PunchSegment segment in workday.WorkSegments)
            {
                if (segment.SegmentCategory == Category.Break)
                {
                    TotalDuration -= segment.Duration;
                }
                sb.Append("<div style=\"" + Cat2Style(segment.SegmentCategory) + "\">\n");
                sb.Append("<div style=\"font-size: 25px; font-weight: bold;\">" + segment.StartTime.ToString("t") + "</div>\n");
                sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">" + segment.StartLabel + "</div>\n");
                sb.Append("<div style=\"margin-left: 20px; padding: 15px; border-left-width: medium; border-left-style: solid; vertical-align: middle;\">\n<div style=\"color: #000000;\">");
                sb.Append(dc.Convert(segment.Duration, typeof(String), null, null) + " = " + segment.Duration.TotalHours.ToString("F") + " hrs");
                sb.Append("</div></div>");
                sb.Append("<div style=\"font-size: 25px; font-weight: bold;\">" + segment.EndTime.ToString("t") + "</div>\n");
                sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">" + segment.EndLabel + "</div></div>\n");
            }
            sb.Append("<div style=\"font-size: 25px; font-weight: bold; color: #1BA1E2;\">" + workday.EndTime.ToString("t") + "</div>\n");
            sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">End Work</div>\n");

            sb.Append("<div style=\"color: #000000; border-top: thin solid black; margin-top: 20px; text-align: right;\"><div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">Total Work Time:</div>" + dc.Convert(TotalDuration, typeof(String), null, null) + " = " + TotalDuration.TotalHours.ToString("F") + " hrs" + "</div>\n</div>");
            return sb.ToString();
        }
예제 #6
0
        public void WorkdayDateWithSlashesFirstInputAndNegDateInputReturnsCorrectInput()
        {
            var function = new Workday();
            var result   = function.Execute(FunctionsHelper.CreateArgs("1-2-2017", -10), this.ParsingContext);

            Assert.AreEqual(42723.00, result.Result);
        }
예제 #7
0
        public void Test_ReturnExpectedSeparatedMoodWithReason_OnWorkday(Workday workday, Mood mood, Reason reason)
        {
            var class1 = new Class1();

            class1.GetMoodWithReasonForWorkday(workday).Mood.Should().Be(mood);
            class1.GetMoodWithReasonForWorkday(workday).Reason.Should().Be(reason);
        }
예제 #8
0
        public void FailInstanciate_BeginsAfterEnds()
        {
            var from = "15:00";
            var to   = "8:00";

            var workDay = new Workday(from, to, SlotDuration.ThirtyMinutes);
        }
예제 #9
0
        public void FailInstanciate_NotTime()
        {
            var from = "15:99";
            var to   = "15:00";

            var workDay = new Workday(from, to, SlotDuration.ThirtyMinutes);
        }
예제 #10
0
        public void CanTestInRange()
        {
            var dateTime = DateTime.Today.AddHours(16).AddMinutes(30);
            var workday  = new Workday("08:00", "16:00", SlotDuration.ThirtyMinutes);

            Assert.IsFalse(workday.IsInRange(dateTime));
        }
        public AddWorkday(int workdayId)
        {
            InitializeComponent();
            db = App.Database.GetInstance();

            Task.Run(async() =>
            {
                workday = await db.Table <Workday>().Where(x => x.WorkdayId == workdayId).FirstOrDefaultAsync();

                if (workday == null)
                {
                    await DisplayAlert("Alert", "Meegestuurde werkdag staat niet in de database.", "Ok");
                    workday = new Workday();
                    await Navigation.PopToRootAsync();
                    return;
                }

                selectedAssignment = await db.Table <Assignment>().Where(x => x.CostCenterNumber == workday.CostCenterNumber).FirstOrDefaultAsync();

                addWorkdayNote.Text       = workday.Note;
                addWorkdayKilometers.Text = workday.TraveledDistance.ToString();
                addWorkdayHours.Text      = workday.WorkedHours.ToString();
                addWorkdayExtraCosts.Text = workday.ExtraExpenses;
                addWorkdayDate.Date       = workday.Date;
            });
        }
예제 #12
0
        public async Task <IActionResult> Edit(int id, [Bind("WorkdayId,ResourceId,WorkingDate,QuantityOne,QuantityTwo")] Workday workday)
        {
            if (id != workday.WorkdayId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(workday);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!WorkdayExists(workday.WorkdayId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ResourceId"] = new SelectList(_context.Resource, "ResourceId", "FullName", workday.ResourceId);
            return(View(workday));
        }
 public AddWorkday(Assignment preselectedAssignment)
 {
     InitializeComponent();
     db                 = App.Database.GetInstance();
     workday            = new Workday();
     selectedAssignment = preselectedAssignment;
 }
예제 #14
0
        /// <inheritdoc />
        public IEnumerable <IWorkdayInfo> CreateMonth(int year, int month, TimeSpan dailyLength, TimeSpan breakLength)
        {
            // TODO: Refine to NOT return ALL days in the database
            var workdays = this.repository.GetDays();

            // Create empty entries for current month
            var daysInMonth   = DateTime.DaysInMonth(year, month);
            var availableDays = new Workday[daysInMonth];

            for (int dayOfMonth = 1; dayOfMonth <= daysInMonth; dayOfMonth++)
            {
                var currentDay = new DateTime(year, month, dayOfMonth);
                var workday    = workdays.SingleOrDefault(d => d.StartTime.Date == currentDay.Date);

                if (workday == null)
                {
                    workday = new Workday
                    {
                        StartTime         = currentDay,
                        DefaultWorkLength = dailyLength,
                        TotalBreakLength  = breakLength
                    };

                    // Remember that the technical index is 0-based.
                    availableDays[dayOfMonth - 1] = workday;
                }
            }

            this.repository.Insert(availableDays);
            return(availableDays);
        }
예제 #15
0
    protected void ODS_Workday_Updating(object sender, ObjectDataSourceMethodEventArgs e)
    {
        string          region     = ((TextBox)(this.FV_Workday.FindControl("tbRegion"))).Text.Trim();
        string          workcenter = ((TextBox)(this.FV_Workday.FindControl("tbWorkCenter"))).Text.Trim();
        RadioButtonList rblType    = (RadioButtonList)(this.FV_Workday.FindControl("rblType"));

        workday = (Workday)e.InputParameters[0];
        if (region == "")
        {
            workday.Region = null;
        }
        else
        {
            workday.Region = TheRegionMgr.LoadRegion(region);
            if (workday.Region == null)
            {
                ShowWarningMessage("MasterData.WorkCalendar.WarningMessage.RegionInvalid", region);
                e.Cancel = true;
            }
        }
        if (workcenter == "")
        {
            workday.WorkCenter = null;
        }
        else
        {
            workday.WorkCenter = TheWorkCenterMgr.LoadWorkCenter(workcenter);
            if (workday.WorkCenter == null)
            {
                ShowWarningMessage("MasterData.WorkCalendar.WarningMessage.WorkCenterInvalid", workcenter);
                e.Cancel = true;
            }
        }
        workday.Type = rblType.SelectedValue;
    }
예제 #16
0
        public static String ItemiseWorkday(Workday workday)
        {
            StringBuilder sb = new StringBuilder();
            DurationConverter dc = new DurationConverter();
            sb.Append("<div class=\"timesheet\">\n");
            sb.Append("<div class=\"time meta\">" + workday.StartTime.ToString("t") + "</div>\n");
            sb.Append("<div class=\"label\">Start Work</div>\n");
            TimeSpan TotalDuration = workday.EndTime - workday.StartTime;
            foreach (PunchSegment segment in workday.WorkSegments)
            {
                if (segment.SegmentCategory == Category.Break)
                {
                    TotalDuration -= segment.Duration;
                }
                sb.Append("<div class=\"segment " + Cat2Class(segment.SegmentCategory) + "\">\n");
                sb.Append("<div class=\"time\">" + segment.StartTime.ToString("t") + "</div>\n");
                sb.Append("<div class=\"label\">" + segment.StartLabel + "</div>\n");
                sb.Append("<div class=\"duration\">\n<div>");
                sb.Append(dc.Convert(segment.Duration, typeof(String), null, null) + " = " + segment.Duration.TotalHours.ToString("F") + " hrs");
                sb.Append("</div></div>");
                sb.Append("<div class=\"time\">" + segment.EndTime.ToString("t") + "</div>\n");
                sb.Append("<div class=\"label\">" + segment.EndLabel + "</div></div>\n");
            }
            sb.Append("<div class=\"time meta\">" + workday.EndTime.ToString("t") + "</div>\n");
            sb.Append("<div class=\"label\">End Work</div>\n");

            sb.Append("<div class=\"total\"><div class=\"label\">Total Work Time:</div>" + dc.Convert(TotalDuration, typeof(String), null, null) + " = " + TotalDuration.TotalHours.ToString("F") + " hrs"+"</div>\n</div>");
            return sb.ToString();
        }
예제 #17
0
파일: Program.cs 프로젝트: Nikita3301/Lab5
        public void Calculation()
        {
            Workday calc   = new Workday();
            int     length = File.ReadAllLines("C:\\Users\\s\\RiderProjects\\Lab51\\Lab51\\Coworker.txt").Length;

            string[] str = File.ReadAllLines("C:\\Users\\s\\RiderProjects\\Lab51\\Lab51\\Coworker.txt");
            Console.WriteLine("{0,-31}{1,-16}{2,-24}{3,-12}{4,-10}", "ПІБ", "Посада", "Дата", "Роб. годин", "Год. на проекті");
            for (int i = 0; i < length; i++)
            {
                calc.Pib  = str[i].Substring(0, 30);
                calc.date = str[i].Substring(47, 10);
                var d1 = Convert.ToDateTime(str[i].Substring(47, 10));
                for (int j = 0; j < length; j++)
                {
                    if (str[j].Substring(66, 20) == str[i].Substring(66, 20))
                    {
                        var      d2        = Convert.ToDateTime(str[j].Substring(47, 10));
                        TimeSpan t         = d2 - d1;
                        var      hours     = t.TotalHours;
                        var      days      = t.Days;
                        var      date1     = Convert.ToDateTime(str[i].Substring(47, 14)).ToShortDateString();
                        var      date2     = Convert.ToDateTime(str[j].Substring(47, 14)).ToShortDateString();
                        var      workhours = days * Convert.ToInt32(str[i].Substring(61, 4));
                        if (d2 > d1)
                        {
                            Console.WriteLine("{0,-31}{1,-16}{2,-11}- {3,-13}{4,-15}{5,-10}", str[i].Substring(0, 30), str[i].Substring(31, 15), date1, date2, workhours, hours);
                        }
                    }
                }
            }
        }
예제 #18
0
        public void WorkdayWithNullSecondParameterReturnsPoundNA()
        {
            var function = new Workday();
            var result   = function.Execute(FunctionsHelper.CreateArgs("1/2/2017", null), this.ParsingContext);

            Assert.AreEqual(eErrorType.NA, ((ExcelErrorValue)result.Result).Type);
        }
예제 #19
0
        public void WorkdayWithNullFirstParamReturnsPoundNum()
        {
            var function = new Workday();
            var result   = function.Execute(FunctionsHelper.CreateArgs(null, 10), this.ParsingContext);

            Assert.AreEqual(eErrorType.NA, ((ExcelErrorValue)result.Result).Type);
        }
예제 #20
0
        public void WorkdayWithEmptyFirstParameterAndNegativeDateInputReturnsPoundNA()
        {
            var function = new Workday();
            var result   = function.Execute(FunctionsHelper.CreateArgs(null, -10), this.ParsingContext);

            Assert.AreEqual(eErrorType.NA, ((ExcelErrorValue)result.Result).Type);
        }
예제 #21
0
        public void WorkdayWithHolidaysAsStringsReturnsCorrectValue()
        {
            var function = new Workday();
            var result   = function.Execute(FunctionsHelper.CreateArgs("1/2/2017", 41, "1/25/2017"), this.ParsingContext);

            Assert.AreEqual(42795.00, result.Result);
        }
예제 #22
0
    protected void ODS_Workday_Updating(object sender, ObjectDataSourceMethodEventArgs e)
    {
        string region = ((TextBox)(this.FV_Workday.FindControl("tbRegion"))).Text.Trim();
        string workcenter = ((TextBox)(this.FV_Workday.FindControl("tbWorkCenter"))).Text.Trim();
        RadioButtonList rblType = (RadioButtonList)(this.FV_Workday.FindControl("rblType"));

        workday = (Workday)e.InputParameters[0];
        if (region == "")
        {
            workday.Region = null;
        }
        else
        {
            workday.Region = TheRegionMgr.LoadRegion(region);
            if (workday.Region == null)
            {
                ShowWarningMessage("MasterData.WorkCalendar.WarningMessage.RegionInvalid", region);
                e.Cancel = true;
            }
        }
        if (workcenter == "")
        {
            workday.WorkCenter = null;
        }
        else
        {
            workday.WorkCenter = TheWorkCenterMgr.LoadWorkCenter(workcenter);
            if (workday.WorkCenter == null)
            {
                ShowWarningMessage("MasterData.WorkCalendar.WarningMessage.WorkCenterInvalid", workcenter);
                e.Cancel = true;
            }
        }
        workday.Type = rblType.SelectedValue;
    }
예제 #23
0
        public static String ItemiseWorkday2(Workday workday)
        {
            StringBuilder     sb = new StringBuilder();
            DurationConverter dc = new DurationConverter();

            sb.Append("<h1 style=\"font-size: 46px; font-weight: normal; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\">" +
                      "timecard for " + workday.StartTime.ToString("D") + "</h1>\n" +
                      "<h2 style=\"font-weight: normal; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\">" +
                      "Generated by <a href=\"BLAH BLAH BLAH\">Timecard</a> for Windows Phone 7</h2>\n");
            sb.Append("<div style=\"width: 250px; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\" >\n");
            sb.Append("<div style=\"font-size: 25px; font-weight: bold; color: #1BA1E2;\">" + workday.StartTime.ToString("t") + "</div>\n");
            sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">Start Work</div>\n");
            TimeSpan TotalDuration = workday.EndTime - workday.StartTime;

            foreach (PunchSegment segment in workday.WorkSegments)
            {
                if (segment.SegmentCategory == Category.Break)
                {
                    TotalDuration -= segment.Duration;
                }
                sb.Append("<div style=\"" + Cat2Style(segment.SegmentCategory) + "\">\n");
                sb.Append("<div style=\"font-size: 25px; font-weight: bold;\">" + segment.StartTime.ToString("t") + "</div>\n");
                sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">" + segment.StartLabel + "</div>\n");
                sb.Append("<div style=\"margin-left: 20px; padding: 15px; border-left-width: medium; border-left-style: solid; vertical-align: middle;\">\n<div style=\"color: #000000;\">");
                sb.Append(dc.Convert(segment.Duration, typeof(String), null, null) + " = " + segment.Duration.TotalHours.ToString("F") + " hrs");
                sb.Append("</div></div>");
                sb.Append("<div style=\"font-size: 25px; font-weight: bold;\">" + segment.EndTime.ToString("t") + "</div>\n");
                sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">" + segment.EndLabel + "</div></div>\n");
            }
            sb.Append("<div style=\"font-size: 25px; font-weight: bold; color: #1BA1E2;\">" + workday.EndTime.ToString("t") + "</div>\n");
            sb.Append("<div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">End Work</div>\n");

            sb.Append("<div style=\"color: #000000; border-top: thin solid black; margin-top: 20px; text-align: right;\"><div style=\"width: 130px; font-size: small; text-align: right; color: #000000;\">Total Work Time:</div>" + dc.Convert(TotalDuration, typeof(String), null, null) + " = " + TotalDuration.TotalHours.ToString("F") + " hrs" + "</div>\n</div>");
            return(sb.ToString());
        }
예제 #24
0
        public static String ItemiseWorkday(Workday workday)
        {
            StringBuilder     sb = new StringBuilder();
            DurationConverter dc = new DurationConverter();

            sb.Append("<div class=\"timesheet\">\n");
            sb.Append("<div class=\"time meta\">" + workday.StartTime.ToString("t") + "</div>\n");
            sb.Append("<div class=\"label\">Start Work</div>\n");
            TimeSpan TotalDuration = workday.EndTime - workday.StartTime;

            foreach (PunchSegment segment in workday.WorkSegments)
            {
                if (segment.SegmentCategory == Category.Break)
                {
                    TotalDuration -= segment.Duration;
                }
                sb.Append("<div class=\"segment " + Cat2Class(segment.SegmentCategory) + "\">\n");
                sb.Append("<div class=\"time\">" + segment.StartTime.ToString("t") + "</div>\n");
                sb.Append("<div class=\"label\">" + segment.StartLabel + "</div>\n");
                sb.Append("<div class=\"duration\">\n<div>");
                sb.Append(dc.Convert(segment.Duration, typeof(String), null, null) + " = " + segment.Duration.TotalHours.ToString("F") + " hrs");
                sb.Append("</div></div>");
                sb.Append("<div class=\"time\">" + segment.EndTime.ToString("t") + "</div>\n");
                sb.Append("<div class=\"label\">" + segment.EndLabel + "</div></div>\n");
            }
            sb.Append("<div class=\"time meta\">" + workday.EndTime.ToString("t") + "</div>\n");
            sb.Append("<div class=\"label\">End Work</div>\n");

            sb.Append("<div class=\"total\"><div class=\"label\">Total Work Time:</div>" + dc.Convert(TotalDuration, typeof(String), null, null) + " = " + TotalDuration.TotalHours.ToString("F") + " hrs" + "</div>\n</div>");
            return(sb.ToString());
        }
예제 #25
0
        public void WorkdayWithPositiveArgsAndNullHolidayDatesReturnsCorrectValue()
        {
            var function  = new Workday();
            var inputDate = new DateTime(2017, 1, 2);
            var result    = function.Execute(FunctionsHelper.CreateArgs(inputDate, 10, null), this.ParsingContext);

            Assert.AreEqual(42751.00, result.Result);
        }
예제 #26
0
        public void WorkdayWithZeroAsDateParameterReuturnsCorrectValeue()
        {
            var function  = new Workday();
            var startDate = new DateTime(2017, 1, 1);
            var result    = function.Execute(FunctionsHelper.CreateArgs(startDate, 0), this.ParsingContext);

            Assert.AreEqual(42736.00, result.Result);
        }
예제 #27
0
        public void WorkdayWithIntegerInputReturnsCorrectValue()
        {
            var function = new Workday();
            var input    = 10;
            var result   = function.Execute(FunctionsHelper.CreateArgs(input, 10), this.ParsingContext);

            Assert.AreEqual(24.00, result.Result);
        }
예제 #28
0
        public void WorkdayWithNonZeroIntegerAsHolidayInputReturnsCorrectValue()
        {
            var function  = new Workday();
            var inputDate = new DateTime(2017, 1, 2);
            var result    = function.Execute(FunctionsHelper.CreateArgs(inputDate, 5, 1), this.ParsingContext);

            Assert.AreEqual(42744.00, result.Result);
        }
예제 #29
0
        public void WorkdayWithInvalidArgumentReturnsPoundValue()
        {
            var function = new Workday();
            var args     = FunctionsHelper.CreateArgs();
            var result   = function.Execute(args, this.ParsingContext);

            Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result.Result).Type);
        }
예제 #30
0
        public void WorkdayWithDATEFunctionAsInputReturnsCorrectValue()
        {
            var function = new Workday();
            var input    = new DateTime(2017, 1, 2);
            var result   = function.Execute(FunctionsHelper.CreateArgs(input, 10), this.ParsingContext);

            Assert.AreEqual(42751.00, result.Result);
        }
예제 #31
0
        public void WorkdayWithNegativeIntAsHolidayInputReturnsPoundNum()
        {
            var function  = new Workday();
            var inputDate = new DateTime(2017, 1, 2);
            var result    = function.Execute(FunctionsHelper.CreateArgs(inputDate, 10, -1), this.ParsingContext);

            Assert.AreEqual(eErrorType.Num, ((ExcelErrorValue)result.Result).Type);
        }
예제 #32
0
        public void WorkdayWithDateAsStringReturnsCorrectValue()
        {
            var function = new Workday();
            var input    = "1/2/2017";
            var result   = function.Execute(FunctionsHelper.CreateArgs(input, 10), this.ParsingContext);

            Assert.AreEqual(42751.00, result.Result);
        }
예제 #33
0
        public void WorkdayWithHolidayWithDashesInsteadOfSlashesReturnsCorrectValue()
        {
            var function  = new Workday();
            var inputDate = new DateTime(2017, 1, 2);
            var result    = function.Execute(FunctionsHelper.CreateArgs(inputDate, 41, "1-25-2017"), this.ParsingContext);

            Assert.AreEqual(42795.00, result.Result);
        }
예제 #34
0
        public void WorkdayWithDayParameterAsOADateReturnCorrectValue()
        {
            var function  = new Workday();
            var startDate = new DateTime(2017, 1, 1);
            var result    = function.Execute(FunctionsHelper.CreateArgs(startDate, 42748), this.ParsingContext);

            Assert.AreEqual(102582.00, result.Result);
        }
예제 #35
0
 public static void EmailWorkday(Workday workday, String emailAddr)
 {
     EmailComposeTask email = new EmailComposeTask();
     email.Body = EmailFormatWorkday(workday);
     email.Subject = "Timesheet for " + workday.StartTime.ToString("D");
     if (emailAddr != null)
         email.To = emailAddr;
     email.Show();
 }
예제 #36
0
 public void CreateWorkdayShifts(Workday workday, IList<Shift> sList)
 {
     foreach (Shift shift in sList)
     {
         WorkdayShift workdayShift = new WorkdayShift();
         workdayShift.Workday = workday;
         workdayShift.Shift = shift;
         entityDao.CreateWorkdayShift(workdayShift);
     }
 }
예제 #37
0
    protected void ODS_Workday_Inserting(object sender, ObjectDataSourceMethodEventArgs e)
    {
        string region = ((Controls_TextBox)(this.FV_Workday.FindControl("tbRegion"))).Text.Trim();
        string workcenter = ((Controls_TextBox)(this.FV_Workday.FindControl("tbWorkCenter"))).Text.Trim();
        RadioButtonList rbType = (RadioButtonList)(this.FV_Workday.FindControl("rbType"));

        workday = (Workday)e.InputParameters[0];
        workday.Region = TheRegionMgr.LoadRegion(region);
        workday.WorkCenter = TheWorkCenterMgr.LoadWorkCenter(workcenter);
        workday.Type = rbType.SelectedValue;
    }
예제 #38
0
    private void UpdateView()
    {
        workday = TheWorkdayMgr.LoadWorkday(Convert.ToInt32(this.code));
        TextBox tbRegion = (TextBox)(this.FV_Workday.FindControl("tbRegion"));
        TextBox tbWorkCenter = (TextBox)(this.FV_Workday.FindControl("tbWorkCenter"));
        RadioButtonList rblType = (RadioButtonList)(this.FV_Workday.FindControl("rblType"));

        if (workday.Region != null)
        {
            tbRegion.Text = workday.Region.Code;
        }
        if (workday.WorkCenter != null)
        {
            tbWorkCenter.Text = workday.WorkCenter.Code;
        }
        rblType.SelectedValue = workday.Type;
    }
예제 #39
0
        public static void SaveItemisedWorkday(Workday workday, String filename)
        {
            IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication();

            StreamResourceInfo tStream = Application.GetResourceStream(new Uri("Resources/timecard.html", UriKind.Relative));
            StreamReader tReader = new StreamReader(tStream.Stream);
            String html = tReader.ReadToEnd();
            tReader.Close();
            System.Diagnostics.Debug.WriteLine(html);
            html = html.Replace("TIMECARD_DATE", workday.StartTime.ToString("D"));
            html = html.Replace("ITEMISED_WORKDAY", ItemiseWorkday(workday));
            IsolatedStorageFileStream stream = file.OpenFile(filename, System.IO.FileMode.Create);
            StreamWriter writer = new StreamWriter(stream);
            writer.Write(html);
            writer.Close();
        }
예제 #40
0
 public void DeleteWorkday(Workday workday)
 {
     WorkdayMgr.DeleteWorkday(workday.Id, true);
 }
예제 #41
0
 public virtual void UpdateWorkday(Workday entity)
 {
     entityDao.UpdateWorkday(entity);
 }
예제 #42
0
 public virtual void DeleteWorkday(Workday entity)
 {
     entityDao.DeleteWorkday(entity);
 }
예제 #43
0
 public virtual void CreateWorkday(Workday entity)
 {
     entityDao.CreateWorkday(entity);
 }
 public virtual void DeleteWorkday(Workday entity)
 {
     Delete(entity);
 }
 public virtual void UpdateWorkday(Workday entity)
 {
     Update(entity);
 }
 public virtual void CreateWorkday(Workday entity)
 {
     Create(entity);
 }
예제 #47
0
 public void UpdateWorkday(Workday workday)
 {
     WorkdayMgr.UpdateWorkday(workday);
 }
예제 #48
0
 public void CreateWorkday(Workday workday)
 {
     WorkdayMgr.CreateWorkday(workday);
 }