Ejemplo n.º 1
0
        /// <summary>
        /// GET: Returns resource representation of Simulation
        /// </summary>
        /// <param name="name">Simulation name</param>
        /// <returns>Get Version of Simulation</returns>
        public Simulation GetSimulation(string nameOrID)
        {
            Guid simulationid = Guid.Empty;
            bool isGuid       = Guid.TryParse(nameOrID, out simulationid);

            Debug.WriteLine("Find simulation: " + nameOrID, this.GetType().Name);
            Simulation sim = null;

            try
            {
                sim = DataMarshal.GetSimulation(nameOrID, isGuid);

                /*if (sim == null)
                 * {
                 *  var detail = new ErrorDetail(
                 *      ErrorDetail.Codes.DATAFORMAT_ERROR,
                 *      String.Format("simulation \"{0}\" does not exist", nameOrID)
                 *  );
                 *  throw new WebFaultException<ErrorDetail>(detail,
                 *      System.Net.HttpStatusCode.NotFound);
                 * }
                 * return sim;*/
            }
            catch (Exception ex)
            {
                Debug.WriteLine("No simulation " + nameOrID, this.GetType().Name);
                Debug.WriteLine(ex.ToString());
                var detail = new ErrorDetail(
                    ErrorDetail.Codes.DATAFORMAT_ERROR,
                    "No simulation " + nameOrID + ", traceback: " + ex.StackTrace.ToString()
                    );
                throw new WebFaultException <ErrorDetail>(detail, System.Net.HttpStatusCode.NotFound);
            }
            return(sim);
        }
Ejemplo n.º 2
0
        public Simulation UpdateSimulation(string name, Simulation sim)
        {
            ISimulationProducerContract contract = null;

            if (sim == null)
            {
                string msg = String.Format("No Application specified in Simulation {0}", name);
                Debug.WriteLine(msg, this.GetType().Name);
                var detail = new ErrorDetail(
                    ErrorDetail.Codes.DATAFORMAT_ERROR,
                    msg
                    );
                throw new WebFaultException <ErrorDetail>(detail,
                                                          System.Net.HttpStatusCode.InternalServerError);
            }

            string appname = sim.Application;

            try
            {
                contract = Turbine.Lite.Web.Resources.Contracts.ProducerSimulationContract.Create(name, appname);
            }
            catch (Exception ex)
            {
                string msg = String.Format("Failed to Create Simulation {0}: {1} {2}",
                                           name, ex.Message, ex.StackTrace.ToString());
                if (ex.InnerException != null)
                {
                    msg += String.Format("    InnerException:    {0} {1}",
                                         ex.InnerException.Message, ex.InnerException.StackTrace.ToString());
                }
                Debug.WriteLine(msg, this.GetType().Name);
                var detail = new ErrorDetail(
                    ErrorDetail.Codes.DATAFORMAT_ERROR,
                    msg
                    );
                throw new WebFaultException <ErrorDetail>(detail,
                                                          System.Net.HttpStatusCode.InternalServerError);
            }

            sim = DataMarshal.GetSimulation(name);

            return(sim);
        }
Ejemplo n.º 3
0
        public Simulation GetSimulation(string name)
        {
            Debug.WriteLine("Find simulation: " + name, this.GetType().Name);
            Simulation sim = null;

            try
            {
                sim = DataMarshal.GetSimulation(name);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("No simulation " + name, this.GetType().Name);
                Debug.WriteLine(ex.ToString());
                var detail = new ErrorDetail(
                    ErrorDetail.Codes.DATAFORMAT_ERROR,
                    "No simulation " + name + ", traceback: " + ex.StackTrace.ToString()
                    );
                throw new WebFaultException <ErrorDetail>(detail, System.Net.HttpStatusCode.NotFound);
            }
            return(sim);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// PUT: Update Simulation
        /// </summary>
        /// <param name="name">Simulation name</param>
        /// <param name="sim">Simulation Resource Representation</param>
        /// <returns>Updated Simulation</returns>
        public Simulation UpdateSimulation(string nameOrID, Simulation sim)
        {
            Guid simulationId = Guid.Empty;
            bool isGuid       = Guid.TryParse(nameOrID, out simulationId);

            ISimulationProducerContract contract = null;

            if (sim == null || sim.Name == null)
            {
                Debug.WriteLine(String.Format("Sim Name: {0}, ID: {1}, app: {2}", sim.Name, sim.Id.ToString(), sim.Application)
                                , this.GetType().Name);
                string msg = String.Format("No Application specified in Simulation {0}", nameOrID);
                Debug.WriteLine(msg, this.GetType().Name);
                var detail = new ErrorDetail(
                    ErrorDetail.Codes.DATAFORMAT_ERROR,
                    msg
                    );
                throw new WebFaultException <ErrorDetail>(detail,
                                                          System.Net.HttpStatusCode.InternalServerError);
            }

            if (!isGuid && !nameOrID.Equals(sim.Name))
            {
                string msg = String.Format("No URL Resource Name {0} doesn't match Simulation.Name {1}", nameOrID, sim.Name);
                Debug.WriteLine(msg, this.GetType().Name);
                var detail = new ErrorDetail(
                    ErrorDetail.Codes.DATAFORMAT_ERROR,
                    msg
                    );
                throw new WebFaultException <ErrorDetail>(detail,
                                                          System.Net.HttpStatusCode.InternalServerError);
            }

            string appname = sim.Application;

            try
            {
                contract = ProducerSimulationContract.Create(nameOrID, sim.Name, appname);
            }
            catch (Exception ex)
            {
                string msg = String.Format("Failed to Create Simulation {0}: {1} {2}",
                                           nameOrID, ex.Message, ex.StackTrace.ToString());
                if (ex.InnerException != null)
                {
                    msg += String.Format("    InnerException:    {0} {1}",
                                         ex.InnerException.Message, ex.InnerException.StackTrace.ToString());
                }
                Debug.WriteLine(msg, this.GetType().Name);
                var detail = new ErrorDetail(
                    ErrorDetail.Codes.DATAFORMAT_ERROR,
                    msg
                    );
                throw new WebFaultException <ErrorDetail>(detail,
                                                          System.Net.HttpStatusCode.InternalServerError);
            }

            sim = DataMarshal.GetSimulation(nameOrID, isGuid);

            return(sim);
        }