public OperationResult SaveLegalAct(XmlDocument xdoc, MSOWebServiceCallContextDTO context, byte[] formContent, string fileName)
        {
            OperationResult result = OperationResult.OK;

            if (!validateContext(context, true))
            {
                result = OperationResult.InvalidContext;
                return(result);
            }

            //switch (validateXmlData(xdoc, context))
            //{
            //    case 0:
            //        result = OperationResult.InvalidXmlData;
            //        break;

            //    case -1:
            //        result = OperationResult.SchemaNotFound;
            //        break;

            //    case -2:
            //        result = OperationResult.XmlValidatorError;
            //        break;
            //}

            MSOIntegrationDAO dao       = new MSOIntegrationDAO();
            OperationResult   tmpRes    = result;
            string            extension = Path.GetExtension(fileName);
            //try
            //{
            //    extension = Path.GetExtension(dao.GetFormExtension(context.DocumentTypeID));
            //}
            //catch
            //{
            //    return OperationResult.DBConnectionError;
            //}
            Guid tempFilename = Guid.NewGuid();

            try
            {
                int rv = dao.TrySaveExistingLegalAct(xdoc, context);

                if (rv == 0 && tmpRes != OperationResult.OK)
                {
                    return(tmpRes);
                }

                rv = dao.SaveExistingLegalAct(xdoc, context, tempFilename.ToString() + extension, fileName != null?Path.GetFileName(fileName):null);

                switch (rv)
                {
                case -1:
                    result = OperationResult.InvalidDocument;
                    break;

                case -2:
                    result = OperationResult.InvalidTicket;
                    break;

                case -3:
                    result = OperationResult.TicketExpired;
                    break;

                case -4:
                    result = OperationResult.DocumentTypeChanged;
                    break;

                case -5:
                    result = OperationResult.DocumentContentChanged;
                    break;

                case -6:
                    result = OperationResult.InvalidFormHash;
                    break;
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
                result = OperationResult.UnableToSaveDocument;
                return(result);
            }

            if (result != OperationResult.OK)
            {
                return(result);
            }

            string filePath = Path.Combine(Pemi.Esoda.Tools.MSOIntegrationHelper.MSOProcessingHelper.MSODirectoryPath, tempFilename.ToString() + extension);

            try
            {
                File.WriteAllBytes(filePath, formContent);
            }
            catch
            {
                return(OperationResult.UnableToSaveFormContent);
            }
            dao.DeleteTicket(context);
            return(result);
        }