Exemplo n.º 1
0
 public static int AddWorkspace(Workspace newWorkspace)
 {
     int newId = AvailableWorkspaces.Count > 0 ? AvailableWorkspaces.Max(w => w.Id) + 1 : 1;
     newWorkspace.Id = newId;
     AvailableWorkspaces.Add(newWorkspace);
     XmlSerializer x = new XmlSerializer(typeof(List<Workspace>));
     TextWriter writer = new StreamWriter(WORKSPACES);
     x.Serialize(writer, AvailableWorkspaces);
     return newId;
 }
Exemplo n.º 2
0
 public static int UpdateWorkspace(Workspace workspace)
 {
     var existing = AvailableWorkspaces.Find(ws => ws.Id == workspace.Id);
     var existingIndex = AvailableWorkspaces.IndexOf(existing);
     AvailableWorkspaces[existingIndex] = workspace;
     XmlSerializer x = new XmlSerializer(typeof(List<Workspace>));
     TextWriter writer = new StreamWriter(WORKSPACES);
     x.Serialize(writer, AvailableWorkspaces);
     return existing.Id;
 }
Exemplo n.º 3
0
        public ActionResult SaveWorkspace(WorkspaceModel workspace)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var updatedWorkspace = new Workspace
                    {
                        Id = workspace.ID,
                        IsComplete = workspace.IsComplete,
                        Name = workspace.Name
                    };

                    db.Workspaces.AddOrUpdate(updatedWorkspace);
                    db.SaveChanges();

                    // update parameters
                    var existingValues = from pv in db.ParameterValues where pv.WorkspaceId == workspace.ID select pv;
                    foreach (var value in existingValues)
                    {
                        db.ParameterValues.Remove(value);
                    }

                    db.SaveChanges();
                    foreach (var paramValue in workspace.ParametersValues)
                    {
                        db.ParameterValues.AddOrUpdate(
                            new ParamValue
                            {
                                ParameterId = paramValue.ID,
                                Value = paramValue.Value,
                                WorkspaceId = updatedWorkspace.Id
                            });
                    }

                    db.SaveChanges();

                    if (workspace.Result != null)
                    {
                        updatedWorkspace.OutputInterval = workspace.Result.OutputInterval;
                        updatedWorkspace.OutputLinguistic = workspace.Result.OutputLinguistic;
                        db.Workspaces.AddOrUpdate(updatedWorkspace);
                        db.SaveChanges();

                    }

                    return LoadWorkspace(updatedWorkspace.Id);
                }
                catch (Exception ex)
                {
                    return new HttpStatusCodeResult(HttpStatusCode.InternalServerError, ex.Message);
                }
            }

            // if didn't pass validation
            return PartialView("_Workspace", RestoreModel(workspace));
        }