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();
            }
        }
Example #3
0
        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();
         }
     }
 }
Example #5
0
 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();
         }
     }
 }
Example #6
0
        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();
            }
        }
Example #8
0
        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();
            }
        }
Example #9
0
        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);
            }
        }
Example #10
0
 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;
                }
            }
        }
Example #12
0
        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;
            }
        }
Example #13
0
        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();
            }
        }
Example #17
0
 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();
         }
     }
 }
Example #18
0
 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();
            }
        }