/// <summary> /// Copy session to a new session with the desired job state. /// </summary> /// <param name="sessionID"></param> /// <returns>Json session's new Guid and new jobs Count numbers</returns> public Stream CopySession(string sessionid) { string state = QueryParameters_GetData("error", "state"); Dictionary <string, string> d = null; ISessionProducerContract contract = new ProducerSessionContract(); try { Debug.WriteLine("Copying Session, jobs with state: " + state, "SessionResource.CopySession"); d = contract.Copy(new Guid(sessionid), state); } catch (Exception ex) { var msg = "Failed to Copy session: " + sessionid + ", UpdateException: " + ex.Message + ", InnerException: " + ex.InnerException + ", StackTrace: " + ex.StackTrace.ToString(); Debug.WriteLine(msg, "SessionResource.CopySession"); var detail = new ErrorDetail( ErrorDetail.Codes.DATAFORMAT_ERROR, String.Format("Couldn't Copy Session") ); throw new WebFaultException <ErrorDetail>(detail, System.Net.HttpStatusCode.BadRequest); } string json = Newtonsoft.Json.JsonConvert.SerializeObject(d); return(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(json))); //return new MemoryStream(System.Text.Encoding.UTF8.GetBytes(result ?? "")); }
public int DeleteSession(string sessionID) { Guid session = new Guid(sessionID); ISessionProducerContract contract = new ProducerSessionContract(); try { return(contract.Delete(session)); } catch (System.Data.Entity.Infrastructure.DbUpdateException ex) { var msg = "Failed to Delete session " + sessionID + ", UpdateException: " + ex.Message + ", InnerException: " + ex.InnerException; Debug.WriteLine(msg, GetType().Name); var detail = new ErrorDetail(ErrorDetail.Codes.JOB_STATE_ERROR, msg); //throw new WebFaultException<ErrorDetail>(detail, System.Net.HttpStatusCode.BadRequest); throw; } catch (Exception ex) { var msg = "Failed to Delete session " + sessionID + ", " + ex + ": " + ex.Message + ", InnerException: " + ex.InnerException; Debug.WriteLine(msg, GetType().Name); var detail = new ErrorDetail(ErrorDetail.Codes.JOB_STATE_ERROR, msg); throw new WebFaultException <ErrorDetail>(detail, System.Net.HttpStatusCode.BadRequest); } }
/// <summary> /// example: {"finished":100, "submit":10} /// Query Parameters: /// ?state="finished"&state="submit" /// </summary> /// <param name="sessionID"></param> /// <returns>JSON object with counts of all jobs in various states</returns> public Stream StatusSession(string sessionID) { ISessionProducerContract contract = new ProducerSessionContract(); Dictionary <string, int> d = contract.Status(new Guid(sessionID)); string json = Newtonsoft.Json.JsonConvert.SerializeObject(d); //WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8"; return(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(json))); }
/* * * public bool UpdateDescription(string sessionID, Stream data) * { * var content_type = WebOperationContext.Current.IncomingRequest.ContentType; * * byte[] bytes; * using (var ms = new MemoryStream()) * { * data.CopyTo(ms); * bytes = ms.ToArray(); * } * var s = System.Text.Encoding.UTF8.GetString(bytes); * * return DataMarshal.UpdateDescription(sessionID, s); * } * * public Stream GetDescription(string sessionID) * { * var sessionMeta = DataMarshal.GetSessionMeta(new Guid(sessionID)); * Debug.WriteLine("GetDescription: " + sessionMeta); * string json = Newtonsoft.Json.JsonConvert.SerializeObject(sessionMeta.Descrption); * return new MemoryStream(System.Text.Encoding.UTF8.GetBytes(json)); * } */ public int StartSession(string sessionID) { Debug.WriteLine(String.Format("start session {0}", sessionID), this.GetType().Name); ISessionProducerContract contract = new ProducerSessionContract(); int total = 0; total += contract.Unpause(new Guid(sessionID)); total += contract.Submit(new Guid(sessionID)); Debug.WriteLine(String.Format("total {0}", total), this.GetType().Name); return(total); }
public int CreateSessionResultsPage(string sessionid, string generatorid) { Guid sessionGuid = new Guid(sessionid); Guid generatorGuid = new Guid(generatorid); int pagenum = 0; //try //{ ISessionProducerContract contract = new ProducerSessionContract(); pagenum = contract.CreateResultPage(sessionGuid, generatorGuid); if (pagenum == -1) { var msg = "No resources available"; Debug.WriteLine(msg, "SessionResource.CreateSessionResultsPage"); var detail = new ErrorDetail( ErrorDetail.Codes.DATAFORMAT_ERROR, String.Format(msg) ); throw new WebFaultException <ErrorDetail>(detail, System.Net.HttpStatusCode.NotFound); } else if (pagenum == -2) { var msg = "Bad Request, one or more Jobs are still in 'create' or 'pause' state"; Debug.WriteLine(msg, "SessionResource.CreateSessionResultsPage"); var detail = new ErrorDetail( ErrorDetail.Codes.DATAFORMAT_ERROR, String.Format(msg) ); throw new WebFaultException <ErrorDetail>(detail, System.Net.HttpStatusCode.BadRequest); } //} /*catch (Exception ex) * { * var msg = "Failed to Create a new result page " + ", UpdateException: " + ex.Message + ", InnerException: " + ex.InnerException + ", StackTrace: " + ex.StackTrace.ToString(); + Debug.WriteLine(msg, "SessionResource.CreateSessionResultsPage"); + var detail = new ErrorDetail( + ErrorDetail.Codes.DATAFORMAT_ERROR, + String.Format(msg) + ); + throw new WebFaultException<ErrorDetail>(detail, System.Net.HttpStatusCode.BadRequest); + }*/ return(pagenum); }
public Guid CreateSessionResults(string sessionid) { Debug.WriteLine("Creating a new Generator", "SessionResource.CreateSessionResults"); Guid generator = Guid.Empty; try { Guid sessionGuid = new Guid(sessionid); ISessionProducerContract contract = new ProducerSessionContract(); generator = contract.CreateGenerator(sessionGuid); } catch (Exception ex) { var msg = "Failed to Create a new generator of session: " + sessionid + ", UpdateException: " + ex.Message + ", InnerException: " + ex.InnerException + ", StackTrace: " + ex.StackTrace.ToString(); Debug.WriteLine(msg, "SessionResource.CreateSessionResults"); var detail = new ErrorDetail( ErrorDetail.Codes.DATAFORMAT_ERROR, String.Format("Couldn't Create a new generator") ); throw new WebFaultException <ErrorDetail>(detail, System.Net.HttpStatusCode.BadRequest); } return(generator); }
public int KillSession(string sessionID) { ISessionProducerContract contract = new ProducerSessionContract(); return(contract.Terminate(new Guid(sessionID))); }
public int StopSession(string sessionID) { ISessionProducerContract contract = new ProducerSessionContract(); return(contract.Pause(new Guid(sessionID))); }
public Guid CreateSession() { ISessionProducerContract contract = new ProducerSessionContract(); return(contract.Create()); }