Ejemplo n.º 1
0
        /// <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 ?? ""));
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        /// <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)));
        }
Ejemplo n.º 4
0
        /*
         *
         * 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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        public int KillSession(string sessionID)
        {
            ISessionProducerContract contract = new ProducerSessionContract();

            return(contract.Terminate(new Guid(sessionID)));
        }
Ejemplo n.º 8
0
        public int StopSession(string sessionID)
        {
            ISessionProducerContract contract = new ProducerSessionContract();

            return(contract.Pause(new Guid(sessionID)));
        }
Ejemplo n.º 9
0
        public Guid CreateSession()
        {
            ISessionProducerContract contract = new ProducerSessionContract();

            return(contract.Create());
        }