public ActionResult GetTimesheetDetail(DateTime singleWorkTime) { var projectList = GetProjectList(); List <TimeSheetItem> timeSheetItems = GetTimeSheetDetail(singleWorkTime); var viewModel = new TimeSheetViewModel() { Projects = projectList.ToArray(), TimeSheetItems = timeSheetItems.ToArray() }; return(this.PartialView("_TimeSheetDetails", viewModel)); }
// GET: TimeSheetViewModels/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } TimeSheetViewModel timeSheetViewModel = db.TimeSheetViewModel.Find(id); if (timeSheetViewModel == null) { return(HttpNotFound()); } return(View(timeSheetViewModel)); }
public IHttpActionResult DeleteTimeSheet(int id) { TimeSheetViewModel timesheet = db.TimeSheets.Find(id); if (timesheet == null) { return(NotFound()); } db.TimeSheets.Remove(timesheet); db.SaveChanges(); return(Ok(timesheet)); }
public ActionResult Details(TimeSheet timeSheet) { if (!ModelState.IsValid) { var ViewModel = new TimeSheetViewModel { TimeSheet = new TimeSheet(), Status = GetStatus() }; return(View("Details", ViewModel)); } dbContext.timeSheets.Add(timeSheet); dbContext.SaveChanges(); return(RedirectToAction("GridView", "TimeSheets")); }
public IActionResult Create(TimeSheetViewModel timeSheetViewModel) { if (!ModelState.IsValid) { return(View(timeSheetViewModel)); } _timeSheetAppService.Create(timeSheetViewModel); if (IsValidOperation()) { ViewBag.Sucesso = "TimeSheet Created!"; } return(View(timeSheetViewModel)); }
public IActionResult Save(TimeSheetViewModel formData) { IActionResult response; var result = _timeSheet.Save(formData, _token.Email); if (result.IsError) { response = Conflict(result); } else { response = Ok(result); } return(response); }
public ActionResult Create() { Time tes = new Time() { AsDate = DateTime.Today.Date, ComDate = DateTime.Today.Date }; TimeSheetViewModel viewModel = new TimeSheetViewModel { Time = tes, Status = GetStatus() }; return(View("Create", viewModel)); }
public ActionResult Create(Time time) { if (!ModelState.IsValid) { var viewmodel = new TimeSheetViewModel { Time = new Time(), Status = GetStatus() }; return(View("Create", viewmodel)); } dbContext.times.Add(time); dbContext.SaveChanges(); return(RedirectToAction("Get", "Times")); }
public ActionResult TimeSheet() { TimeSheetViewModel model = new TimeSheetViewModel(); ListItemViewModel listitems = new ListItemViewModel(); model.Projectlist = new SelectList(TimeSheetAPIHelperService.CostModelProject().Result, "ID", "Value"); model.OpportunityNumberList = new SelectList(TimeSheetAPIHelperService.CostModelProject().Result, "ID", "OpportunityNumber"); var listitem = TimeSheetAPIHelperService.CostModelProject().Result.Select(x => new ListItemViewModel() { Id = x.Id, Value = x.Value }); int opportunityId = listitem.FirstOrDefault().Id; model.ActivityList = new SelectList(TimeSheetAPIHelperService.ProjectActivities(opportunityId).Result, "ID", "Value"); return(View(model)); }
public ActionResult Index() { if (Session["Username"] == null) { return(RedirectToAction("Login", "Login")); } else { TimeSheetViewModel model = new TimeSheetViewModel(); model.Projectlist = new SelectList(TimeSheetAPIHelperService.CostModelProject().Result, "ID", "Value"); // model.OpportunityNumberList = new SelectList(TimeSheetAPIHelperService.CostModelProject().Result, "ID", "OpportunityNumber"); model.WarehouseNameList = new SelectList(ListItemService.Warehouses().Result, "ID", "Value"); model.CandidateNameList = new SelectList(ListItemService.Resources().Result, "ID", "Value"); model.CandidateTimeSheetList = TimeSheetAPIHelperService.TimeSheetList().Result; return(View(model)); } }
// GET: TimeSheetSettings public ActionResult Index() { TimeSheetViewModel model = new TimeSheetViewModel(); var projectList = _projectSettindsMethod.getAllList().Where(x => x.Archived == false); var frequencyList = _otherSettingMethod.getAllSystemValueListByKeyName("Time Sheet Tasks").Where(x => x.Archived == false); var detailList = _otherSettingMethod.getAllSystemValueListByKeyName("Time Sheet Details").Where(x => x.Archived == false); model.ProjectList.Add(new SelectListItem() { Text = "-- Select Project --", Value = "0" }); foreach (var item in projectList) { model.ProjectList.Add(new SelectListItem() { Text = item.Name, Value = item.Id.ToString() }); } model.FrequencyList.Add(new SelectListItem() { Text = "-- Select Frequency --", Value = "0" }); foreach (var item in frequencyList) { model.FrequencyList.Add(new SelectListItem() { Text = item.Value, Value = item.Id.ToString() }); } model.DetailList.Add(new SelectListItem() { Text = "-- Select Detail --", Value = "0" }); foreach (var item in detailList) { model.DetailList.Add(new SelectListItem() { Text = item.Value, Value = item.Id.ToString() }); } return(View(model)); }
public ActionResult <TimeSheetViewModel> Delete(Guid id) { var result = timeSheetService.Delete(id); var timesheet = new TimeSheetViewModel(); timesheet.Messages = new List <string>(); if (result) { timesheet.Messages.Add("Registro excluído com sucesso!"); } else { timesheet.Messages.Add("Não foi possível excluir o registro"); return(BadRequest(timesheet)); } return(Ok(timesheet)); }
public static void Init() { jQuery.OnDocumentReady(delegate() { ValidationApi.RegisterExtenders(); // Init settings OrganizationServiceProxy.GetUserSettings(); TimeSheetViewModel vm = new TimeSheetViewModel(); SetUpGrids(vm); SetUpDatePicker(vm); ViewBase.RegisterViewModel(vm); }); }
// GET: TimeSheets public ActionResult Index() { var vm = new TimeSheetViewModel() { Date = DateTime.Now, TimeSheetRows = new List<TimeSheetRowViewModel>() { new TimeSheetRowViewModel() { Worker = new WorkerViewModel() { FirstName = "Filip", LastName = "Skurniak", }, IsPresent = true, IsLate = false, NumberOfHours = 8, }, new TimeSheetRowViewModel() { Worker = new WorkerViewModel() { FirstName = "Filip2", LastName = "Skurniak2", }, IsPresent = false, IsLate = false, NumberOfHours = 8, }, new TimeSheetRowViewModel() { Worker = new WorkerViewModel() { FirstName = "Filip2", LastName = "Skurniak3", }, IsPresent = true, IsLate = true, NumberOfHours = 4, } } }; return View(vm); }
public ActionResult Register() { TimeSheetViewModel model = new TimeSheetViewModel(); model.Projectlist = new SelectList(TimeSheetAPIHelperService.CostModelProject().Result, "ID", "Value"); model.OpportunityNumberList = new SelectList(TimeSheetAPIHelperService.CostModelProject().Result, "ID", "OpportunityNumber"); var listitem = TimeSheetAPIHelperService.CostModelProject().Result.Select(x => new ListItemViewModel() { Id = x.Id, Value = x.Value }); int opportunityId = listitem.FirstOrDefault().Id; model.ActivityList = new SelectList(TimeSheetAPIHelperService.ProjectActivities(opportunityId).Result, "ID", "Value"); model.WarehouseNameList = new SelectList(ListItemService.Warehouses().Result, "ID", "Value"); model.CandidateNameList = new SelectList(ListItemService.Resources().Result, "ID", "Value"); model.CandidateTimeSheetList = TimeSheetAPIHelperService.TimeSheetList().Result; return(PartialView("Register", model)); }
public ActionResult Details(int id) { var timeSheet = _timeSheetRepository.Get(id, "ApprovedByEmployee.User.Person"); if (timeSheet == null) { return(HttpNotFound()); } var loginEmployee = _employeeRepository.GetBy(r => r.UserId == WebUser.Id); var myReportees = _employeeRepository.GetAllBy(u => u.ReportingPersonId == loginEmployee.Id && u.EmployeeStatus != EmployeeStatus.Ex).Select(u => u.UserId).ToList(); var userList = _userRepository.GetAllBy(u => myReportees.Contains(u.Id), "Person").Select(u => u.Id).ToList(); if (timeSheet.CreatedByUserId == WebUser.Id || userList.Contains(timeSheet.CreatedByUserId) || WebUser.IsAdmin || PermissionChecker.CheckPermission(WebUser.Permissions, 210)) { var timeSheetRows = _timeSheetLineItemRepository.GetAllBy(l => l.TimeSheetId == timeSheet.Id, "Project"); var activities = _timeSheetActivityRepository.GetAllBy(l => l.TimeSheetId == timeSheet.Id, o => o.OrderByDescending(t => t.CreatedOn)); var viewModel = new TimeSheetViewModel(timeSheet, WebUser) { LineItems = timeSheetRows.ToList(), TimeSheetActivities = activities.ToList() }; // Is the Person a Manager, then only show the Approval Screen. var timeSheetUser = _userRepository.Get(timeSheet.CreatedByUserId, "ReportingPerson"); var timesheetEmployee = _employeeRepository.GetBy(u => u.UserId == timeSheetUser.Id); var employee = _employeeRepository.GetBy(r => r.UserId == WebUser.Id); viewModel.IsApprover = timeSheetUser != null && timesheetEmployee.ReportingPersonId == employee.Id; return(View(viewModel)); } else { return(new RedirectToRouteResult(new RouteValueDictionary { { "controller", "Error" }, { "action", "NotAuthorized" }, { "area", "" } })); } }
public ActionResult Details(int id) { var timeSheet = _timeSheetRepository.Get(id, "ApprovedByEmployee.User.Person,CreatedByUser.Person"); var timeSheetRows = _timeSheetLineItemRepository.GetAllBy(l => l.TimeSheetId == timeSheet.Id, "Project"); var viewModel = new TimeSheetViewModel(timeSheet, WebUser) { LineItems = timeSheetRows.ToList() }; // Is the Person a Manager, then only show the Approval Screen. var timeSheetUser = _userRepository.Get(timeSheet.CreatedByUserId, "ReportingPerson"); var timesheetEmployee = _employeeRepository.GetBy(u => u.UserId == timeSheetUser.Id); var employee = _employeeRepository.GetBy(r => r.UserId == WebUser.Id); viewModel.IsApprover = timeSheetUser != null && timesheetEmployee.ReportingPersonId == employee.Id; return(View(viewModel)); }
public TimeSheetRegisterModel MapTimesheetRegisterModel(TimeSheetViewModel timesheetviewmodel) { var MapRegisterData = new TimeSheetRegisterModel() { ProjectID = timesheetviewmodel.TimeSheetRegisterModel.ProjectID, WarehouseNameId = timesheetviewmodel.TimeSheetRegisterModel.WarehouseNameId, OpportunityNumberID = timesheetviewmodel.TimeSheetRegisterModel.OpportunityNumberID, CandidateNameId = timesheetviewmodel.TimeSheetRegisterModel.CandidateNameId, ServiceActivityId = timesheetviewmodel.ServiceActivityID, OLATarget = timesheetviewmodel.TimeSheetRegisterModel.OLATarget, ActualQuantity = timesheetviewmodel.TimeSheetRegisterModel.ActualQuantity, Colour = timesheetviewmodel.TimeSheetRegisterModel.Colour, StartTime = timesheetviewmodel.TimeSheetRegisterModel.StartTime, EndTime = timesheetviewmodel.TimeSheetRegisterModel.EndTime, Day = timesheetviewmodel.TimeSheetRegisterModel.Day, TimeSheetComments = timesheetviewmodel.TimeSheetRegisterModel.TimeSheetComments, }; return(MapRegisterData); }
public static async Task <TimeSheetViewModel> TimeSheetSearchById(int id) { var CostModelLists = new TimeSheetViewModel(); using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(TimeSheetAPIURl); HttpResponseMessage response = client.GetAsync(string.Format("Timesheet/{0}/TimeSheetSearchById", id)).Result; if (response.IsSuccessStatusCode) { var projectactivities = await response.Content.ReadAsAsync <TimeSheetViewModel>(); CostModelLists = projectactivities; //foreach (var a in projectactivities) //{ // CostModelLists.Add(a); //} } } return(CostModelLists); }
public IActionResult CurrentTimeSheet() { var user = _userManager.FindByNameAsync(User.Identity.Name).Result; var timesheet = _context.TimeSheets.Last(x => x.UserId == user.Id); var timeWorked = TimeSheetTimeSpent(timesheet); var amountMade = TimeSheetAmountMade(timesheet, timeWorked); var model = new TimeSheetViewModel { StartDate = timesheet.StartDate, EndDate = timesheet.EndDate, Exempt = timesheet.ExemptFromOvertime, Approved = timesheet.Approved, TotalEarning = amountMade, TotalHours = timeWorked, DenialReason = timesheet.ReasonDenied ?? "Not Denied Yet" }; return(View("DetailTimeSheet", model)); }
private void GenerateMonthlyTimeSheet(TimeSheetViewModel tsvm, List <DateTime> datelists) { datelists.Add(tsvm.StartDate); GetLastDayOfMonth(tsvm); if (tsvm.StartDate <= tsvm.EndDate) { datelists.Add(tsvm.StartDate); //last day of first month } while (tsvm.StartDate < tsvm.EndDate) { while (tsvm.StartDate.Day != 1 && tsvm.StartDate.AddDays(1) <= tsvm.EndDate) { tsvm.StartDate = tsvm.StartDate.AddDays(1); datelists.Add(tsvm.StartDate); } GetLastDayOfMonth(tsvm); CheckDateInInterval(tsvm, datelists); } }
public JsonResult Save(TimeSheetViewModel obj) { bool success = false; string message = ""; if (ModelState.IsValid) { success = true; //db.Entry(obj.TimeSheetList).State = EntityState.Modified; foreach (var timesheet in obj.TimeSheetList) { TimeSheet t = db.TimeSheets.Find(timesheet.TimeSheetId); t.In = timesheet.In; t.Out = timesheet.Out; db.Entry(t).State = EntityState.Modified; } db.SaveChanges(); } return(Json(new { success = success, message = message })); }
public async void TimeSheet_Delete_Success() { string messageDelete = "Registro excluído com sucesso!"; var timeSheet = new TimeSheet() { BeginDate = DateTime.Now.AddDays(-7), EndDate = DateTime.Now, ProjectId = Guid.Parse("beaf506e-991f-4515-9c3d-2ace55ef1b25"), DeveloperId = Guid.Parse("94b6955e-71d1-4409-bcb2-8f8b14c6ef09") }; await Autenticate(); // Act var response = await client.PostAsync( BasePath + "add", new StringContent(JsonConvert.SerializeObject(timeSheet), Encoding.UTF8) { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } }); TimeSheet timeSheetResponse = await response.Content.ReadAsAsync <TimeSheet>(); // Assert1 Assert.Equal(HttpStatusCode.OK, response.StatusCode); var responseDelete = await client.DeleteAsync(BasePath + "delete/?id=" + timeSheet.TimeSheetId); TimeSheetViewModel timeSheetDeleteResponse = await responseDelete.Content.ReadAsAsync <TimeSheetViewModel>(); Assert.Equal(HttpStatusCode.OK, responseDelete.StatusCode); Assert.Equal(messageDelete, timeSheetDeleteResponse.Messages.FirstOrDefault()); Assert.Equal(timeSheet.TimeSheetId, timeSheetResponse.TimeSheetId); // Assert2 Assert.Equal("application/json; charset=utf-8", response.Content.Headers.ContentType.ToString()); }
public ActionResult PostResourceData(TimeSheetViewModel theModel) { for (int i = 0; i < theModel.ResourceIDs.Count; i++) { TimeSheetRegisterModel regModel = new TimeSheetRegisterModel(); regModel.CandidateNameId = theModel.ResourceIDs[i]; regModel.Colour = theModel.Colour; regModel.Day = theModel.Day; regModel.EndTime = theModel.EndTime; regModel.Id = theModel.Id; regModel.OLATarget = theModel.OLATarget; regModel.OpportunityNumberID = theModel.OpportunityID; regModel.ProjectID = theModel.ProjectID; regModel.ServiceActivityId = theModel.ServiceActivityID; regModel.StartTime = theModel.StartTime; regModel.StatusID = theModel.StatusID; regModel.WarehouseNameId = theModel.WarehouseID; var test = RegisterTimesheetService.RegisterTimesheetModel(regModel); } return(RedirectToAction("Index", "ManageCalender")); }
public IHttpActionResult PostTimeSheet(TimeLogBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // Build timesheet entity with the binding model var timeSheet = new TimeSheetViewModel() { ProjectID = model.ProjectID, TaskID = model.TaskID, UserName = User.Identity.Name, ActualEffort = model.ActualEffort, ActualStartDate = model.ActualStartDate, ActualEndDate = model.ActualEndDate }; db.TimeSheets.Add(timeSheet); db.SaveChanges(); return(CreatedAtRoute("DefaultApi", new { id = timeSheet.TimeSheetID }, timeSheet)); }
private static void SetUpDatePicker(TimeSheetViewModel vm) { jQueryObject element = jQuery.Select("#datepicker"); DatePickerOptions options = new DatePickerOptions(); options.NumberOfMonths = 3; options.CalculateWeek = true; string dateFormat = "dd/MM/yy"; if (OrganizationServiceProxy.UserSettings != null) { dateFormat = OrganizationServiceProxy.UserSettings.DateFormatString; } options.DateFormat = dateFormat.Replace("MM", "mm").Replace("yyyy", "yy").Replace("M", "m"); DatePickerOptions2 options2 = new DatePickerOptions2(); options2.NumberOfMonths = 3; options2.DateFormat = dateFormat.Replace("MM", "mm").Replace("yyyy", "yy").Replace("M", "m"); // Wire up onSelect event options2.OnSelect = delegate(string dateText, object instance) { // Commit any of the current edits EditController controller = sessionsGrid.GetEditController(); bool editCommited = controller.commitCurrentEdit(); if (editCommited) { DateTime date = (DateTime)element.Plugin <DatePickerObject>().DatePicker(DatePickerMethod.GetDate); vm.SessionDataView.SetCurrentWeek(date); } }; element.Plugin <DatePickerPlugIn>().DatePicker(options2); }
public static void Init() { PageEx.MajorVersion = 2013; jQuery.OnDocumentReady(delegate() { ValidationApi.RegisterExtenders(); // Init settings OrganizationServiceProxy.GetUserSettings(); TimeSheetViewModel vm = new TimeSheetViewModel(); SetUpGrids(vm); SetUpDatePicker(vm); // All Resize Grid jQuery.Select("#timesheetGridContainer").Plugin <ResizableObject>().Resizable(); ViewBase.RegisterViewModel(vm); }); }
public ActionResult Index() { if (Session["Username"] == null) { return(RedirectToAction("Login", "Login")); } else { TimeSheetViewModel model = new TimeSheetViewModel(); model.Projectlist = new SelectList(TimeSheetAPIHelperService.CostModelProject().Result, "ID", "Value"); model.OpportunityNumberList = new SelectList(TimeSheetAPIHelperService.CostModelProject().Result, "ID", "OpportunityNumber"); var listitem = TimeSheetAPIHelperService.CostModelProject().Result.Select(x => new ListItemViewModel() { Id = x.Id, Value = x.Value }); int opportunityId = listitem.FirstOrDefault().Id; model.ActivityList = new SelectList(TimeSheetAPIHelperService.ProjectActivities(opportunityId).Result, "ID", "Value"); model.WarehouseNameList = new SelectList(ListItemService.Warehouses().Result, "ID", "Value"); model.CandidateNameList = new SelectList(ListItemService.Resources().Result, "ID", "Value"); model.CandidateTimeSheetList = TimeSheetAPIHelperService.TimeSheetList().Result; return(View(model)); } }
public MainPage() { this.InitializeComponent(); TimeSheetViewModel = new TimeSheetViewModel(); }
public static void SetUpGrids(TimeSheetViewModel vm) { // Create Timesheet Grid DataViewBase daysDataView = vm.Days; List <Column> columns = new List <Column>(); GridDataViewBinder.BindRowIcon(GridDataViewBinder.AddColumn(columns, "", 50, "icon"), "activity"); XrmLookupEditor.BindColumn(GridDataViewBinder.AddColumn(columns, "Account", 300, "account"), vm.AccountSeachCommand, "accountid", "name", null); XrmLookupEditor.BindColumn(GridDataViewBinder.AddColumn(columns, "Regarding", 300, "regardingObjectId"), vm.RegardingObjectSearchCommand, "id", "displayName", null); XrmLookupEditor.BindColumn(GridDataViewBinder.AddColumn(columns, "Activity", 300, "activity"), vm.ActivitySearchCommand, "activityid", "subject", "activitytypecode"); string[] daysOfWeek = new string[] { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; int firstDayOfWeek = OrganizationServiceProxy.OrganizationSettings.WeekStartDayCode.Value.Value; GridDataViewBinder.AddColumn(columns, daysOfWeek[firstDayOfWeek], 50, "day0"); GridDataViewBinder.AddColumn(columns, daysOfWeek[firstDayOfWeek + 1], 50, "day1"); GridDataViewBinder.AddColumn(columns, daysOfWeek[firstDayOfWeek + 2], 50, "day2"); GridDataViewBinder.AddColumn(columns, daysOfWeek[firstDayOfWeek + 3], 50, "day3"); GridDataViewBinder.AddColumn(columns, daysOfWeek[firstDayOfWeek + 4], 50, "day4"); GridDataViewBinder.AddColumn(columns, daysOfWeek[firstDayOfWeek + 5], 50, "day5"); GridDataViewBinder.AddColumn(columns, daysOfWeek[firstDayOfWeek + 6], 50, "day6"); GridDataViewBinder daysDataBinder = new GridDataViewBinder(); daysDataBinder.SelectActiveRow = true; daysDataBinder.AddCheckBoxSelectColumn = false; daysGrid = daysDataBinder.DataBindXrmGrid(daysDataView, columns, "timesheetGridContainer", null, true, true); // Set the totals row meta data daysDataView.OnGetItemMetaData += delegate(object item) { ItemMetaData metaData = new ItemMetaData(); DayEntry day = (DayEntry)item; if (day != null && day.isTotalRow) { metaData.Editor = delegate(EditorArguments args) { return(null); }; metaData.Columns = new Dictionary <object, Column>(); metaData.Columns["Account"] = new Column("editor", null); metaData.Columns["Regarding"] = new Column("editor", null); metaData.Columns["Activity"] = new Column("editor", null); metaData.Formatter = delegate(int row, int cell, object value, Column columnDef, object dataContext) { switch (columnDef.Field) { case "account": case "regardingObjectId": return(""); case "activity": return("Total"); default: return(XrmDurationEditor.Formatter(row, cell, value, columnDef, dataContext)); } }; metaData.CssClasses = "days_total_row"; } else { metaData.Formatter = delegate(int row, int cell, object value, Column columnDef, object dataContext) { switch (columnDef.Field) { case "account": case "regardingObjectId": case "activity": return(XrmLookupEditor.Formatter(row, cell, value, columnDef, dataContext)); default: return(XrmDurationEditor.Formatter(row, cell, value, columnDef, dataContext)); } }; } return(metaData); }; daysDataBinder.DataBindSelectionModel(daysGrid, daysDataView); // --------------------------------------- // Sessions Grid // --------------------------------------- DataViewBase sessionsDataView = vm.SessionDataView; List <Column> sessionGridCols = new List <Column>(); GridDataViewBinder.AddEditIndicatorColumn(sessionGridCols); XrmTextEditor.BindColumn(GridDataViewBinder.AddColumn(sessionGridCols, "Activity", 300, "activitypointer_subject")).Editor = null; XrmDateEditor.BindColumn(GridDataViewBinder.AddColumn(sessionGridCols, "Date", 100, "dev1_starttime"), true); XrmTimeEditor.BindColumn(GridDataViewBinder.AddColumn(sessionGridCols, "Start", 100, "dev1_starttime")).Validator = delegate(object value, object item) { dev1_session session = (dev1_session)item; DateTime newStartTime = (DateTime)value; ValidationResult result = new ValidationResult(); if (session.dev1_EndTime != null) { result.Valid = true; string valueText = (string)value; // Check if the end time is before the start time bool isValid = DateTimeEx.GetTimeDuration(newStartTime) < DateTimeEx.GetTimeDuration(session.dev1_EndTime); result.Valid = isValid; result.Message = "The start time must be before the end time"; } else { result.Valid = true; } return(result); }; XrmTimeEditor.BindColumn(GridDataViewBinder.AddColumn(sessionGridCols, "End", 100, "dev1_endtime")).Validator = delegate(object value, object item) { dev1_session session = (dev1_session)item; DateTime newEndTime = (DateTime)value; ValidationResult result = new ValidationResult(); if (session.dev1_StartTime != null) { result.Valid = true; string valueText = (string)value; // Check if the end time is before the start time bool isValid = DateTimeEx.GetTimeDuration(session.dev1_StartTime) < DateTimeEx.GetTimeDuration(newEndTime); result.Valid = isValid; result.Message = "The end time must be after the start time"; } else { result.Valid = true; } return(result); }; XrmDurationEditor.BindColumn(GridDataViewBinder.AddColumn(sessionGridCols, "Duration", 70, "dev1_duration")); XrmTextEditor.BindColumn(GridDataViewBinder.AddColumn(sessionGridCols, "Description", 300, "dev1_description")); GridDataViewBinder sessionsDataBinder = new GridDataViewBinder(); sessionsDataBinder.SelectActiveRow = false; sessionsDataBinder.AddCheckBoxSelectColumn = true; sessionsGrid = sessionsDataBinder.DataBindXrmGrid(sessionsDataView, sessionGridCols, "sessionsGridContainer", null, true, true); sessionsGrid.OnBeforeEditCell.Subscribe(delegate(EventData e, object args) { // Stop the row from being edited if locked Entity item = (Entity)((EditEventData)args).item; bool result = sessionsDataView.OnBeforeEdit(item); Script.Literal("return {0}", result); }); daysGrid.OnActiveCellChanged.Subscribe(delegate(EventData e, object args) { CellSelection activeCell = daysGrid.GetActiveCell(); if (activeCell != null) { if (activeCell.Cell < StartDaysColumnIndex) { // Whole activity is selected vm.Days.SelectedDay = null; } else { vm.Days.SelectedDay = activeCell.Cell - (StartDaysColumnIndex - 1); } } }); }
private void GetLastDayOfMonth(TimeSheetViewModel tsvm) { int dayinthemonth = DateTime.DaysInMonth(tsvm.StartDate.Year, tsvm.StartDate.Month); tsvm.StartDate = new DateTime(tsvm.StartDate.Year, tsvm.StartDate.Month, dayinthemonth); }