Ejemplo n.º 1
0
        public IActionResult SaveXfer(string id, string name, string periodStart, string periodEnd, string jobs)
        {
            JObject meta         = new JObject();
            JObject Xfer         = new JObject();
            JArray  jobList      = JArray.Parse(jobs);
            JArray  selectedJobs = new JArray();
            JArray  servers      = new JArray();
            JArray  ouMapping    = new JArray();

            Guid xferID = Guid.NewGuid();

            if (id != null)
            {
                xferID = Guid.Parse(id);
            }

            meta["id"]          = xferID.ToString();
            meta["name"]        = name;
            meta["periodStart"] = periodStart;
            meta["periodEnd"]   = periodEnd;
            meta["count"]       = jobList.Count();
            meta["jobs"]        = new JArray();

            Xfer["meta"] = meta;

            //Loop through and add job data
            foreach (var j in jobList)
            {
                string jobID = j.ToString();

                JArray metaJobs = meta["jobs"].Value <JArray>();
                metaJobs.Add(jobID);

                JObject job     = DataFactory.GetJob(jobID, directory);
                JObject jobMeta = (JObject)job.GetValue("meta");

                string source      = jobMeta.GetValue("source").ToString();
                string destination = jobMeta.GetValue("destination").ToString();

                selectedJobs.Add(job);

                //Add server data for each job
                DataFactory.CheckServerExists(source, servers, directory);
                DataFactory.CheckServerExists(destination, servers, directory);

                DataFactory.CheckOUMappingExists(source, destination, ouMapping, directory);
            }

            Xfer["jobs"]      = selectedJobs;
            Xfer["servers"]   = servers;
            Xfer["ouMapping"] = ouMapping;

            FileFactory.WriteFile(Xfer, xferID.ToString(), XferFactory.FileType.Xfer, directory);
            //Meta file for when we want to list Xfer files but not load all the data
            FileFactory.WriteFile(meta, xferID.ToString(), XferFactory.FileType.XferMeta, directory);
            return(Json(new { success = true }));
        }