public void FillRequestParameters(Dox42.GeneratorServiceMsg serviceMsg)
        {
            serviceMsg.InputParams = _inputParams.ToArray();
            if (Operation == Dox42Operation.GenerateDocument)
            {
                if (String.IsNullOrWhiteSpace(DocTemplate))
                {
                    throw new ArgumentException("No templatePath in request!");
                }
                serviceMsg.DocTemplate = DocTemplate;
            }
            else if (Operation == Dox42Operation.GenerateSpreadSheet)
            {
                if (String.IsNullOrWhiteSpace(DataMap))
                {
                    throw new ArgumentException("No datamapPath in request!");
                }
                serviceMsg.DataMap = DataMap;
            }
            else
            {
                throw new NotImplementedException("The operation " + Operation.ToString() + " is not implemented!");
            }

            _strategy.FillOutputRequestParmaeter(serviceMsg);
        }
Exemplo n.º 2
0
        public override void FillOutputRequestParmaeter(Dox42.GeneratorServiceMsg serviceMsg)
        {
            var postGenActions = new List <Dox42.PostGenAction>
            {
                new Dox42.PostGenAction()
                {
                    ActionName = Dox42Request.Dox42OutputAction.EmailAction.ToString(),
                    Params     = _returnActionParams.ToArray()
                }
            };


            serviceMsg.PostGenActions = postGenActions.ToArray();
        }
        public void ReturnOutputStrategy_Create()
        {
            var request = new ReturnOutputStrategy();

            request.Format = ReturnOutputStrategy.Dox42ReturnFormat.docx;

            var svcMsg = new Dox42.GeneratorServiceMsg();

            request.FillOutputRequestParmaeter(svcMsg);

            Assert.AreEqual(svcMsg.PostGenActions.Length, 1);
            Assert.AreEqual(svcMsg.PostGenActions[0].Params.Length, 1);
            Assert.AreEqual(svcMsg.PostGenActions[0].ActionName, "ReturnAction");
            Assert.AreEqual(svcMsg.PostGenActions[0].Params[0].ParamName, "Format");
            Assert.AreEqual(svcMsg.PostGenActions[0].Params[0].Value, "docx");
        }
        /// <summary>
        /// executes the report
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public Dox42Response ExecuteReport(Dox42Request request)
        {
            Dox42Response response = new Dox42Response();

            response.Request = request;

            try
            {
                var serviceMessage = new Dox42.GeneratorServiceMsg();

                request.FillRequestParameters(serviceMessage);

                Dox42.GeneratorServiceResponse serviceResponse = null;
                if (request.Operation == Dox42Request.Dox42Operation.GenerateDocument)
                {
                    serviceResponse = _soapSvc.GenerateDocumentAsync(serviceMessage);
                }
                else
                {
                    serviceResponse = _soapSvc.GenerateSpreadSheetAsync(serviceMessage);
                }

                if (serviceResponse != null && serviceResponse.ResultMessage == "OK")
                {
                    response.Success  = true;
                    response.Message  = "Report successfully created!";
                    response.Filename = Path.GetFileNameWithoutExtension(request.DocTemplate);
                    response.File     = serviceResponse.GeneratedDocs[0].Bytes;
                }
                else
                {
                    response.Success = false;
                    response.Message = serviceResponse.ResultMessage;
                }
            }
            catch (Exception e)
            {
                response.Message = "Error while generating the File: " + e.ToString();
                response.Success = false;
            }

            return(response);
        }
 public abstract void FillOutputRequestParmaeter(Dox42.GeneratorServiceMsg serviceMsg);
Exemplo n.º 6
0
 public System.Threading.Tasks.Task <Dox42.GeneratorServiceResponse> GenerateSpreadSheetAsync(Dox42.GeneratorServiceMsg msg)
 {
     return(base.Channel.GenerateSpreadSheetAsync(msg));
 }