public async Task Save() { try { using (var context = new NeoTrackerContext()) { var data = GetModel(); if (EventID == 0) { context.Events.Add(data); } else { context.Entry(data).State = EntityState.Modified; } await context.SaveChangesAsync(); } await App.vm.Project.LoadEvents(); EndEdit(); } catch (Exception e) { App.vm.UserMsg = e.Message.ToString(); } }
public async Task Delete() { try { var dialog = new QuestionDialog("Do you really want to delete this Event (" + Description + ")?"); dialog.ShowDialog(); if (dialog.DialogResult.HasValue && dialog.DialogResult.Value) { using (var context = new NeoTrackerContext()) { //if (CanDelete) //{ var data = GetModel(); context.Entry(data).State = EntityState.Deleted; App.vm.Project.Events.Remove(this); await context.SaveChangesAsync(); EndEdit(); //} } } } catch (Exception e) { App.vm.UserMsg = e.Message.ToString(); } }
public async Task RemoveDepartment(DepartmentViewModel department) { try { var dialog = new QuestionDialog("Do you want to remove this department (" + department.Name + ")?"); dialog.ShowDialog(); if (dialog.DialogResult.HasValue && dialog.DialogResult.Value) { using (var context = new NeoTrackerContext()) { var data = await context.DepartmentUsers.FirstOrDefaultAsync(x => x.DepartmentID == department.DepartmentID && x.UserID == UserID); if (data != null) { context.Entry(data).State = EntityState.Deleted; await context.SaveChangesAsync(); await LoadDepartments(); } } } ; } catch (Exception e) { App.vm.UserMsg = e.Message.ToString(); } }
public async Task LoadItems() { if (ProjectID != 0) { using (var context = new NeoTrackerContext()) { Items = await context.Items.Where(x => x.ProjectID == ProjectID).Include(x => x.Project).Include(x => x.Operations).Include(x => x.Status).OrderBy(x => x.SortOrder).ThenBy(x => x.Name).Select(x => new ItemViewModel() { ItemID = x.ItemID, Code = x.Code, SortKey = x.SortKey, QtyDelivery = x.QtyDelivery, QtyOrder = x.QtyOrder, DueDate = x.DueDate, EndDate = x.EndDate, Status = new StatusViewModel() { Name = x.Status.Name, StatusID = x.Status.StatusID, }, ProjectID = x.ProjectID, Name = x.Name, Operations = x.Operations.Select(o => new OperationViewModel() { IsCompleted = o.IsCompleted }).ToList(), SortOrder = x.SortOrder, IsActive = x.IsActive, CreatedAt = x.CreatedAt, UpdatedAt = x.UpdatedAt, UpdatedBy = x.UpdatedBy }).ToListAsync(); } } }
public async Task MassUpdateOperations(List <Operation> ops, DateTime?StartDate, DateTime?EndDate, bool?Completed) { if (ItemID != 0 && Operations.Any()) { using (var context = new NeoTrackerContext()) { foreach (var o in ops) { if (EndDate.HasValue) { o.EndDate = EndDate.Value; } if (Completed.HasValue && Completed.Value) { o.IsCompleted = true; } if (StartDate.HasValue) { o.StartDate = StartDate.Value; } context.Entry(o).State = EntityState.Modified; } await context.SaveChangesAsync(); } } }
public async Task LoadOperations() { using (var context = new NeoTrackerContext()) { if (ItemID != 0) { Operations = await context.Operations.Where(x => x.ItemID == ItemID).Include(x => x.Department).Include(x => x.User).OrderBy(x => x.Department.SortOrder).ThenBy(x => x.SortOrder).ThenBy(x => x.Name).Select(x => new OperationViewModel() { Department = x.Department, User = x.User, EndDate = x.EndDate, ItemID = x.ItemID, OperationID = x.OperationID, OperationTime = x.OperationTime, IsCompleted = x.IsCompleted, StartDate = x.StartDate, Name = x.Name, SortOrder = x.SortOrder, IsActive = x.IsActive, CreatedBy = x.CreatedBy, CreatedAt = x.CreatedAt, UpdatedAt = x.UpdatedAt, UpdatedBy = x.UpdatedBy }).ToListAsync(); App.vm.SelectItemList = Operations.Select(x => x.Department).Distinct().Select(x => new DropdownItem() { Value = x.DepartmentID, IsSelected = false, Text = x.Name }).ToList(); } } }
public async Task Delete() { try { var dialog = new QuestionDialog("Do you really want to delete this operation (" + Name + ")?"); dialog.ShowDialog(); if (dialog.DialogResult.HasValue && dialog.DialogResult.Value) { using (var context = new NeoTrackerContext()) { var data = GetModel(); context.Entry(data).State = EntityState.Deleted; App.vm.Item.Operations.Remove(this); var changeLogs = App.vm.ChangeLog.Where(x => x.EntityName == "Operation" && x.PrimaryKeyValue == data.OperationID).ToList(); changeLogs.ForEach(x => context.Entry(x).State = EntityState.Deleted); await context.SaveChangesAsync(); EndEdit(); } } } catch (Exception e) { App.vm.UserMsg = e.Message.ToString(); } }
public async Task RemoveUser(User user) { try { var dialog = new QuestionDialog("Do you want to remove this user (" + user.LongName + ")?"); dialog.ShowDialog(); if (dialog.DialogResult.HasValue && dialog.DialogResult.Value) { using (var context = new NeoTrackerContext()) { if (HeadOfDepartment != null && HeadOfDepartment.UserID == user.UserID) { HeadOfDepartment = null; context.Entry(GetModel()).State = EntityState.Modified; await context.SaveChangesAsync(); } var data = await context.DepartmentUsers.FirstOrDefaultAsync(x => x.UserID == user.UserID && x.DepartmentID == DepartmentID); if (data != null) { context.Entry(data).State = EntityState.Deleted; await context.SaveChangesAsync(); await LoadUsers(); } } } ; } catch (Exception e) { App.vm.UserMsg = e.Message.ToString(); } }
private async void DepartmentList_Click(object sender, RoutedEventArgs e) { using (var context = new NeoTrackerContext()) { var data = await context.Departments.Select(x => x).ToListAsync(); ExportToExcel(data); } }
public async Task LoadUsers() { if (DepartmentID != 0) { using (var context = new NeoTrackerContext()) { Users = await context.Users.Where(x => x.DepartmentUsers.Any(u => u.DepartmentID == DepartmentID)).OrderBy(x => x.FirstName).ThenBy(x => x.LastName).ToListAsync(); } } }
private async void UserControl_Loaded(object sender, RoutedEventArgs e) { if (App.vm.Operation != null) { using (var context = new NeoTrackerContext()) { var data = await context.DepartmentUsers.Where(x => x.DepartmentID == App.vm.Operation.Department.DepartmentID).Include(x => x.User).Select(x => x.User).ToListAsync(); UserCb.ItemsSource = data; } } }
public async Task LoadChangeLog(string entityName, int pk) { ChangeLog.Clear(); using (var context = new NeoTrackerContext()) { var logs = await context.ChangeLogs.Where(x => x.EntityName == entityName && x.PrimaryKeyValue == pk).OrderByDescending(x => x.UpdatedAt).ToListAsync(); foreach (var log in logs.Where(x => x.PropertyName.Contains("ID"))) { switch (log.PropertyName) { case "StatusID": //log.NewValue = !string.IsNullOrEmpty(log.NewValue) ? context.Statuses.Find(int.Parse(log.NewValue)).Name : string.Empty; log.OldValue = !string.IsNullOrEmpty(log.OldValue) ? context.Statuses.Find(int.Parse(log.OldValue)).Name : string.Empty; break; case "ItemID": //log.NewValue = !string.IsNullOrEmpty(log.NewValue) ? context.Items.Find(int.Parse(log.NewValue)).Name : string.Empty; log.OldValue = !string.IsNullOrEmpty(log.OldValue) ? context.Items.Find(int.Parse(log.OldValue)).Name : string.Empty; break; case "UserID": log.OldValue = !string.IsNullOrEmpty(log.OldValue) ? context.Users.Find(int.Parse(log.OldValue)).LongName : string.Empty; break; case "DepartmentID": //log.NewValue = !string.IsNullOrEmpty(log.NewValue) ? context.Departments.Find(int.Parse(log.NewValue)).Name : string.Empty; log.OldValue = !string.IsNullOrEmpty(log.OldValue) ? context.Departments.Find(int.Parse(log.OldValue)).Name : string.Empty; break; case "EventTypeID": //log.NewValue = !string.IsNullOrEmpty(log.NewValue) ? context.EventTypes.Find(int.Parse(log.NewValue)).Name : string.Empty; log.OldValue = !string.IsNullOrEmpty(log.OldValue) ? context.EventTypes.Find(int.Parse(log.OldValue)).Name : string.Empty; break; case "ProjectTypeID": //log.NewValue = !string.IsNullOrEmpty(log.NewValue) ? context.ProjectTypes.Find(int.Parse(log.NewValue)).Name : string.Empty; log.OldValue = !string.IsNullOrEmpty(log.OldValue) ? context.ProjectTypes.Find(int.Parse(log.OldValue)).Name : string.Empty; break; default: break; } } ChangeLog = logs; } }
public async Task AddUsers() { using (var context = new NeoTrackerContext()) { try { var list = context.Users.Where(x => !context.DepartmentUsers.Any(y => y.DepartmentID == DepartmentID && y.UserID == x.UserID)).ToList().Select(x => new DropdownItem() { Value = x.UserID, Text = x.LongName }).OrderBy(x => x.Text).ToList(); if (list.Any()) { App.vm.SelectItemList = list; var dialog = new SelectDialog("Select users"); dialog.ShowDialog(); if (dialog.DialogResult.HasValue && dialog.DialogResult.Value) { var result = App.vm.SelectItemList.Where(x => x.IsSelected).ToList(); if (result.Any()) { foreach (var item in result) { context.DepartmentUsers.Add(new DepartmentUser() { DepartmentID = DepartmentID, UserID = item.Value }); } await context.SaveChangesAsync(); await LoadUsers(); } } } else { App.vm.UserMsg = "No users to add!!!"; } } catch (Exception e) { App.vm.UserMsg = e.Message.ToString(); } } }
public async Task LoadOrders() { using (var context = new NeoTrackerContext()) using (var Genius = new IVCLIVEDBEntities()) { var projects = context.Projects.Select(x => x.Code).ToArray(); Orders = await Genius.Comms.Where(x => x.Datecli > DateTime.Today && !projects.Contains(x.No_Com)).OrderByDescending(x => x.Datecli).ThenBy(x => x.No_Com).Select(x => new OrderViewModel() { Code = x.No_Com, Client = x.Fact_A1, ClientDate = x.Datecli, Po = x.No_Po, }).ToListAsync(); } }
public async Task LoadEvents() { if (ProjectID != 0) { using (var context = new NeoTrackerContext()) { Events = await context.Events.Where(x => x.ProjectID == ProjectID).Include(x => x.Status).Include(x => x.Item).Include(x => x.EventType).Include(x => x.Department).OrderByDescending(x => x.CreatedAt).Select(x => new EventViewModel() { EventID = x.EventID, Department = x.DepartmentID.HasValue ? new DepartmentViewModel() { DepartmentID = x.Department.DepartmentID, Name = x.Department.Name, } : null, Description = x.Description, ProjectID = x.ProjectID, EventType = new EventTypeViewModel() { EventTypeID = x.EventTypeID, Name = x.EventType.Name, }, EventItem = x.ItemID.HasValue ? new ItemViewModel() { Code = x.Item.Code, Name = x.Item.Name, ItemID = x.Item.ItemID, Status = new StatusViewModel() { Name = x.Item.Status.Name, StatusID = x.Item.Status.StatusID, }, } : null, Status = new StatusViewModel() { Name = x.Status.Name, StatusID = x.Status.StatusID, }, IsActive = x.IsActive, CreatedBy = x.CreatedBy, CreatedAt = x.CreatedAt, UpdatedAt = x.UpdatedAt, UpdatedBy = x.UpdatedBy }).ToListAsync(); } } }
public async Task Save() { try { using (var context = new NeoTrackerContext()) { var data = GetModel(); context.Entry(data).State = EntityState.Modified; await context.SaveChangesAsync(); } EndEdit(); await App.vm.LoadProjects(); } catch (Exception e) { App.vm.UserMsg = e.Message.ToString(); } }
public async Task LoadOperations() { if (DepartmentID != 0) { using (var context = new NeoTrackerContext()) { DepartmentOperations = await context.DepartmentOperations.Where(x => x.DepartmentID == DepartmentID).OrderBy(x => x.SortOrder).ThenBy(x => x.Name).Select(x => new DepartmentOperationViewModel() { CreatedAt = x.CreatedAt, DepartmentID = x.DepartmentID, DepartmentOperationID = x.DepartmentOperationID, IsActive = x.IsActive, Name = x.Name, OperationTime = x.OperationTime, SortOrder = x.SortOrder, UpdatedAt = x.UpdatedAt, UpdatedBy = x.UpdatedBy, }).ToListAsync(); } } }
public async Task LoadDepartments() { if (UserID != 0) { using (var context = new NeoTrackerContext()) { Departments = await(from d in context.Departments.Include(x => x.HeadOfDepartment) join du in context.DepartmentUsers.Where(x => x.UserID == UserID) on d.DepartmentID equals du.DepartmentID orderby d.SortOrder, d.Name select new DepartmentViewModel() { DepartmentID = d.DepartmentID, Name = d.Name, SortOrder = d.SortOrder, HeadOfDepartment = d.HeadOfDepartment, IsActive = d.IsActive, CreatedAt = d.CreatedAt, UpdatedAt = d.UpdatedAt, UpdatedBy = d.UpdatedBy, }).ToListAsync(); } } }
public async Task Create(OrderViewModel order) { try { Code = order.Code; PurchaseOrder = order.Po; Client = order.Client; IsActive = true; using (var IvcContext = new IVCLIVEDBEntities()) using (var context = new NeoTrackerContext()) { var project = GetModel(); var Operations = await context.DepartmentOperations.Where(x => x.IsActive).ToListAsync(); var statusID = await context.Statuses.OrderBy(s => s.SortOrder).ThenBy(s => s.Name).Where(s => s.IsActive).Select(s => s.StatusID).FirstAsync(); var Items = await IvcContext.Comm2.Where(x => x.No_Com == Code).Select(x => new Item() { Code = x.Item, Name = x.Des, DueDate = x.Dateliv, ProjectID = ProjectID, IsActive = true, SortOrder = x.Ligneitm, StatusID = statusID, SortKey = x.Clef, }).ToListAsync(); foreach (var item in Items) { item.Operations = new List <Operation>(); foreach (var o in Operations) { item.Operations.Add(new Operation() { OperationTime = o.OperationTime, DepartmentID = o.DepartmentID, IsActive = true, Name = o.Name, IsCompleted = false, SortOrder = o.SortOrder, }); } } project.Items = Items; context.Projects.Add(project); await context.SaveChangesAsync(); ProjectID = project.ProjectID; await LoadItems(); } EndEdit(); Orders.Clear(); await App.vm.LoadProjects(); } catch (Exception e) { App.vm.UserMsg = e.Message.ToString(); } }