Beispiel #1
0
        public async Task <VMTaskIndex> IndexAsync(string userId, string taskGroupId = null)
        {
            var data = new VMTaskIndex();

            var tasks = VMTask.Fetch(DBContext.TaskItems);

            if (taskGroupId != null)
            {
                tasks = tasks.Where(m => m.Group.Id == taskGroupId);
                var group = await DBContext.TaskGroups.FindAsync(taskGroupId);

                data.GroupId    = group.Id;
                data.GroupTitle = group.Title;
            }
            else
            {
                data.GroupTitle = "All";
            }

            tasks = tasks
                    .Where(t => t.AssignedUserId == null || t.AssignedUserId == userId)
                    .Where(t => t.CompletionDate == null);

            tasks = tasks.OrderByDescending(t => t.Priority);

            data.Tasks = tasks.Select(VMTask.Read(DBContext)).ToList();

            return(data);
        }
 // GET api/<controller>/5
 public IHttpActionResult Get(string id)
 {
     try
     {
         Guid g = new Guid(id);
         //UserId = "2303eff9-b95e-4d3c-8397-bf4eaae25c4f";
         using (UnitOfWork m = new UnitOfWork(new MMAContext(), new Guid(UserId), UserEmail))
         {
             VMTask vm = VMTask.GetVmTask(m.Tasks.Get(g));
             if (vm == null)
             {
                 return(NotFound());
             }
             else
             {
                 return(Ok(vm));
             }
         }
     }
     catch (Exception ex)
     {
         //todo Log Exception
         return(BadRequest(ex.GetAllMessages()));
     }
 }
 public IHttpActionResult GetByEmployer([FromUri] string strEmployerId, [FromUri] string strStartDate, [FromUri] string strEndDate)
 {
     try
     {
         Guid     employerId = new Guid(strEmployerId);
         DateTime startD     = CommonUtils.DateTimeStringToDatetime(strStartDate);
         DateTime endD       = CommonUtils.DateTimeStringToDatetime(strEndDate);
         using (ApplicationDbContext db = new ApplicationDbContext())
         {
             using (UnitOfWork m = new UnitOfWork(new MMAContext(), new Guid(UserId), UserEmail))
             {
                 var           l  = m.Tasks.GetByEmployer(employerId, startD, endD);
                 List <VMTask> al = new List <VMTask>(l.Count());
                 foreach (var r in l)
                 {
                     al.Add(VMTask.GetVmTask(r));
                 }
                 return(Ok(al));
             }
         }
     }
     catch (Exception e)
     {
         //ToDo Log exception
         return(BadRequest(e.GetAllMessages()));
     }
 }
Beispiel #4
0
        public IActionResult Create(string taskGroupId)
        {
            var data = new VMTask {
                TaskGroupId = taskGroupId
            };

            return(View(data));
        }
Beispiel #5
0
        public async Task <VMTask> ReadAsync(string taskId)
        {
            var entity = await
                         VMTask.Fetch(DBContext.TaskItems)
                         .SingleAsync(m => m.Id == taskId);

            return(VMTask.Read(DBContext).Compile().Invoke(entity));
        }
Beispiel #6
0
        public async Task <VMTask> UpdateAsync(VMTask data)
        {
            var entity = await
                         VMTask.Fetch(DBContext.TaskItems)
                         .SingleAsync(m => m.Id == data.Id);

            await data.WriteAsync(DBContext, entity);

            DBContext.Update(entity);

            await DBContext.SaveChangesAsync();

            return(await ReadAsync(entity.Id));
        }
Beispiel #7
0
        public async Task <IActionResult> Update(VMTask writeData)
        {
            if (ModelState.IsValid)
            {
                var readData = await TaskManager.UpdateAsync(writeData);

                await TaskHubContext.Clients.All.SendAsync(TaskHub.Updated, readData.Id);

                return(RedirectToAction("Index", new { GroupId = writeData.TaskGroupId }));
            }
            else
            {
                return(View(writeData));
            }
        }
Beispiel #8
0
        public async Task <IActionResult> Create(VMTask writeData)
        {
            if (ModelState.IsValid)
            {
                var readData = await TaskManager.CreateAsync(writeData, User.GetLoggedInUserId <string>());

                await TaskHubContext.Clients.All.SendAsync(TaskHub.Created, readData.Id);

                return(RedirectToAction("Index", new { writeData.TaskGroupId }));
            }
            else
            {
                return(View(writeData));
            }
        }
Beispiel #9
0
        public async Task <VMTask> CreateAsync(VMTask data, string activeUserId)
        {
            var userTask = UserManager.FindByIdAsync(activeUserId);

            var entity = new TaskItem();
            await data.WriteAsync(DBContext, entity);

            entity.Creator      = await userTask;
            entity.CreationDate = DateTimeOffset.Now;

            await DBContext.TaskItems.AddAsync(entity);

            await DBContext.SaveChangesAsync();

            return(await ReadAsync(entity.Id));
        }
 // POST api/<controller>
 public IHttpActionResult Post([FromBody] VMTask value)
 {
     //UserId = "2303eff9-b95e-4d3c-8397-bf4eaae25c4f";
     try
     {
         Task t = VMTask.GetTask(value, UserId);
         using (UnitOfWork m = new UnitOfWork(new MMAContext(), new Guid(UserId), UserEmail))
         {
             t.UpdatedBy = new Guid(UserId);
             m.Tasks.Add(t);
             m.Complete();
         }
         return(Created($"/api/Task/{t.Id}", t));
     }
     catch (Exception e)
     {
         return(BadRequest(e.GetAllMessages()));
         //throw;
     }
 }
        // PUT api/<controller>/5
        public IHttpActionResult Put(string id, [FromBody] VMTask value)
        {
            var g = new Guid(id);

            try
            {
                using (UnitOfWork m = new UnitOfWork(new MMAContext(), new Guid(UserId), UserEmail))
                {
                    Task t = m.Tasks.Get(g);
                    VMTask.UpdateTask(value, t);
                    t.UpdatedBy = new Guid(UserId);
                    m.Complete();
                    VMTask v = VMTask.GetVmTask(t);
                    return(Ok(v));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(e.GetAllMessages()));
            }
        }
Beispiel #12
0
        private void btnDupVM_Click(object sender, System.EventArgs e)
        {
            // Create new VM folder
            lblProgress.Text = "Creating VM folder";
            lblProgress.Update();
            if (Directory.Exists(txtNewVMPath.Text))
            {
                DialogResult result;
                result = MessageBox.Show("Destination VM Folder exists, Overwrite?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
                if (result == DialogResult.No)
                {
                    return;
                }
            }

            try
            {
                Directory.CreateDirectory(txtNewVMPath.Text);
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
                lblProgress.Text = "Duplication failed: Unable to create VM folder.";
                return;
            }

            pbarMain.Value = 10;



            // Copy VM files
            lblProgress.Text = "Copying VM files";
            lblProgress.Update();

            try
            {
                for (int i = 1; i <= vm.HardDiskConnections.Count; i++)
                {
                    FileInfo vhdfi = new FileInfo(vm.HardDiskConnections[i].HardDisk.File);
                    File.Copy(vm.HardDiskConnections[i].HardDisk.File, txtNewVMPath.Text + @"\" + vhdfi.Name, true);

                    FileInfo undofi = new FileInfo(vm.HardDiskConnections[i].UndoHardDisk.File);
                    File.Copy(vm.HardDiskConnections[i].UndoHardDisk.File, txtNewVMPath.Text + @"\" + undofi.Name, true);
                }

                FileInfo vmfi = new FileInfo(vm.File);
                File.Copy(vm.File, txtNewVMPath.Text + @"\" + txtNewVMName.Text + ".vmc", true);
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
                lblProgress.Text = "Duplication failed: Unable to copy VM files.";
                return;
            }


            pbarMain.Value = 40;


            // Adjust new VM settings
            lblProgress.Text = "Adjust new VM settings";

            pbarMain.Value = 60;


            // Register new VM
            if (ckbRegisterVM.Checked)
            {
                lblProgress.Text = "Register VM...";
                lblProgress.Update();
                Console.WriteLine(txtNewVMPath.Text + @"\" + txtNewVMName.Text + ".vmc");
                try
                {
                    newvm = vs.RegisterVirtualMachine(txtNewVMName.Text, txtNewVMPath.Text);
                }
                catch (Exception err)
                {
                    MessageBox.Show(err.Message);
                    lblProgress.Text = "Duplication failed: Unable to register VM.";
                    return;
                }
            }
            pbarMain.Value = 80;


            // Turn On VM
            if (ckbTurnOnVM.Checked)
            {
                lblProgress.Text = "Turning on VM...";
                lblProgress.Update();
                try
                {
                    VMTask task = newvm.Startup();
                    while (!task.IsComplete)
                    {
                        Thread.Sleep(200);
                    }
                }
                catch (Exception err)
                {
                    MessageBox.Show(err.Message);
                    lblProgress.Text = "Duplication failed: Unable to turn on VM.";
                    return;
                }
            }

            pbarMain.Value = 100;

            lblProgress.Text = "Duplication Finished Successfully.";
        }