예제 #1
0
        /// <summary>
        /// Updates the contact.
        /// </summary>
        /// <param name="siteId">The site id.</param>
        /// <param name="username">The username.</param>
        /// <param name="password">The password.</param>
        /// <param name="xml">The XML.</param>
        /// <returns></returns>
        public string UpdateContact(Guid siteId, string username, string password, string xml)
        {
            var user = _authorization.Authorize(siteId, username, password);

            if (user == null || !Access.Check(user, "API").Write)
            {
                return(StatusHelper.FormatMessage(StatusCodes.AccessDenied, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            XDocument inputXml;

            try
            {
                inputXml = XDocument.Parse(xml);
            }
            catch (Exception ex)
            {
                Log.Error(string.Format("LeadForce.API.UpdateContact error, SiteId: {0}, UserName: {1}, Xml: {2}", siteId, username, xml), ex);
                return(StatusHelper.FormatMessage(StatusCodes.InvalidParameters, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            try
            {
                Contacts.UpdateContact(siteId, user.ID, inputXml.Document);
                _result = StatusHelper.FormatMessage(StatusCodes.Ok, MethodBase.GetCurrentMethod().Name, _result);
            }
            catch (Exception ex)
            {
                Log.Error(string.Format("LeadForce.API.UpdateContact error, SiteId: {0}, UserName: {1}, Xml: {2}", siteId, username, xml), ex);
                return(StatusHelper.FormatMessage(StatusCodes.InternalError, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            return(_result.ToString(SaveOptions.DisableFormatting));
        }
예제 #2
0
        /// <summary>
        /// Checks the name.
        /// </summary>
        /// <param name="siteId">The site id.</param>
        /// <param name="username">The username.</param>
        /// <param name="password">The password.</param>
        /// <param name="fullName">The full name.</param>
        /// <returns></returns>
        public string CheckName(Guid siteId, string username, string password, string fullName)
        {
            var user = _authorization.Authorize(siteId, username, password);

            if (user == null || !Access.Check(user, "API").Read)
            {
                return(StatusHelper.FormatMessage(StatusCodes.AccessDenied, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            try
            {
                var nc = new NameChecker(ConfigurationManager.AppSettings["ADONETConnectionString"]);

                nc.CheckName(fullName, NameCheckerFormat.IOF, Correction.Correct);

                _result = StatusHelper.FormatMessage(StatusCodes.Ok, MethodBase.GetCurrentMethod().Name, _result);

                _result.Document.Element("LeadForceResponse").Add(new XElement("Result",
                                                                               new XElement("CheckName",
                                                                                            new XElement("Surname", nc.Surname),
                                                                                            new XElement("Name", nc.Name),
                                                                                            new XElement("Patronymic", nc.Patronymic),
                                                                                            new XElement("IsNameCorrect", nc.IsNameCorrect.ToString()),
                                                                                            new XElement("Gender", nc.Gender != null ? EnumHelper.GetEnumDescription(nc.Gender) : string.Empty,
                                                                                                         new XAttribute("system", nc.Gender != null ? ((int)nc.Gender).ToString() : string.Empty)))));
            }
            catch (Exception ex)
            {
                Log.Error(string.Format("LeadForce.API.CheckName error, SiteId: {0}, UserName: {1}, FullName: {2}", siteId, username, fullName), ex);
                return(StatusHelper.FormatMessage(StatusCodes.InternalError, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            return(_result.ToString(SaveOptions.DisableFormatting));
        }
예제 #3
0
        /// <summary>
        /// Gets the actions.
        /// </summary>
        /// <param name="siteId">The site id.</param>
        /// <param name="username">The username.</param>
        /// <param name="password">The password.</param>
        /// <param name="xml">The XML.</param>
        /// <returns></returns>
        public string GetActions(Guid siteId, string username, string password, string xml)
        {
            var user = _authorization.Authorize(siteId, username, password);

            if (user == null || !Access.Check(user, "API").Read)
            {
                return(StatusHelper.FormatMessage(StatusCodes.AccessDenied, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            XDocument inputXml;

            try
            {
                inputXml = XDocument.Parse(xml);
            }
            catch (Exception ex)
            {
                Log.Error(string.Format("LeadForce.API.GetActions error, SiteId: {0}, UserName: {1}, Xml: {2}", siteId, username, xml), ex);
                return(StatusHelper.FormatMessage(StatusCodes.InvalidParameters, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            try
            {
                var actions = Actions.GetActions(siteId, inputXml);
                _result = StatusHelper.FormatMessage(StatusCodes.Ok, MethodBase.GetCurrentMethod().Name, _result);
                _result.Document.Element("LeadForceResponse").Add(new XElement("Result", actions.Document.FirstNode));
            }
            catch (Exception ex)
            {
                Log.Error(string.Format("LeadForce.API.GetActions error, SiteId: {0}, UserName: {1}, Xml: {2}", siteId, username, xml), ex);
                return(StatusHelper.FormatMessage(StatusCodes.InternalError, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            return(_result.ToString(SaveOptions.DisableFormatting));
        }
예제 #4
0
        /// <summary>
        /// Updates the invoice.
        /// </summary>
        /// <param name="siteId">The site id.</param>
        /// <param name="username">The username.</param>
        /// <param name="password">The password.</param>
        /// <param name="xml">The XML.</param>
        /// <returns></returns>
        public string UpdateInvoice(Guid siteId, string username, string password, string xml)
        {
            var user = _authorization.Authorize(siteId, username, password);

            if (user == null || !Access.Check(user, "API").Write)
            {
                return(StatusHelper.FormatMessage(StatusCodes.AccessDenied, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            XDocument inputXml;

            try
            {
                inputXml = XDocument.Parse(xml);
            }
            catch (Exception ex)
            {
                Log.Error(string.Format("LeadForce.API.UpdateInvoice error, SiteId: {0}, UserName: {1}, Xml: {2}", siteId, username, xml), ex);
                return(StatusHelper.FormatMessage(StatusCodes.InvalidParameters, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            try
            {
                var result = Invoices.UpdateInvoice(siteId, user.ContactID, inputXml.Document);
                if (result.IsNew)
                {
                    var dataManager       = new DataManager();
                    var invoice           = dataManager.Invoice.SelectById(siteId, result.InvoiceId);
                    var invoiceType       = dataManager.InvoiceType.SelectById(siteId, invoice.InvoiceTypeID);
                    var documentNumerator = DocumentNumerator.GetNumber((Guid)invoiceType.NumeratorID, invoice.CreatedAt, invoiceType.tbl_Numerator.Mask, "tbl_Invoice");
                    invoice.Number       = documentNumerator.Number;
                    invoice.SerialNumber = documentNumerator.SerialNumber;
                    dataManager.Invoice.Update(invoice);
                }
                if (result.IsPendingPayment && !result.IsNew)
                {
                    InvoiceNotificationService.PendingPayment(result.InvoiceId);
                }
                _result = StatusHelper.FormatMessage(StatusCodes.Ok, MethodBase.GetCurrentMethod().Name, _result);
            }
            catch (Exception ex)
            {
                Log.Error(string.Format("LeadForce.API.UpdateInvoice error, SiteId: {0}, UserName: {1}, Xml: {2}", siteId, username, xml), ex);
                return(StatusHelper.FormatMessage(StatusCodes.InternalError, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            return(_result.ToString(SaveOptions.DisableFormatting));
        }
예제 #5
0
        /// <summary>
        /// Updates the requirement.
        /// </summary>
        /// <param name="siteId">The site id.</param>
        /// <param name="username">The username.</param>
        /// <param name="password">The password.</param>
        /// <param name="xml">The XML.</param>
        /// <returns></returns>
        public string UpdateRequirement(Guid siteId, string username, string password, string xml)
        {
            var user = _authorization.Authorize(siteId, username, password);

            if (user == null || !Access.Check(user, "API").Write)
            {
                return(StatusHelper.FormatMessage(StatusCodes.AccessDenied, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            XDocument inputXml;

            try
            {
                inputXml = XDocument.Parse(xml);
            }
            catch (Exception ex)
            {
                Log.Error(string.Format("LeadForce.API.UpdateRequirement error, SiteId: {0}, UserName: {1}, Xml: {2}", siteId, username, xml), ex);
                return(StatusHelper.FormatMessage(StatusCodes.InvalidParameters, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            try
            {
                var requirementId = Requirements.UpdateRequirement(siteId, user.ID, inputXml.Document);
                if (requirementId.HasValue)
                {
                    var dataManager       = new DataManager();
                    var requirement       = dataManager.Requirement.SelectById(siteId, requirementId.Value);
                    var requestSourceType = dataManager.RequirementType.SelectById(siteId, requirement.RequirementTypeID);
                    var documentNumerator = DocumentNumerator.GetNumber((Guid)requestSourceType.NumeratorID, requirement.CreatedAt, requestSourceType.tbl_Numerator.Mask, "tbl_Requirement");
                    requirement.Number       = documentNumerator.Number;
                    requirement.SerialNumber = documentNumerator.SerialNumber;
                    dataManager.Requirement.Update(requirement);
                }
                _result = StatusHelper.FormatMessage(StatusCodes.Ok, MethodBase.GetCurrentMethod().Name, _result);
            }
            catch (Exception ex)
            {
                Log.Error(string.Format("LeadForce.API.UpdateRequirement error, SiteId: {0}, UserName: {1}, Xml: {2}", siteId, username, xml), ex);
                return(StatusHelper.FormatMessage(StatusCodes.InternalError, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            return(_result.ToString(SaveOptions.DisableFormatting));
        }
예제 #6
0
        /// <summary>
        /// Creates the action.
        /// </summary>
        /// <param name="siteId">The site id.</param>
        /// <param name="username">The username.</param>
        /// <param name="password">The password.</param>
        /// <param name="xml">The XML.</param>
        /// <returns></returns>
        public string CreateAction(Guid siteId, string username, string password, string xml)
        {
            var user = _authorization.Authorize(siteId, username, password);

            if (user == null || !Access.Check(user, "API").Write)
            {
                return(StatusHelper.FormatMessage(StatusCodes.AccessDenied, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            XDocument inputXml;

            try
            {
                inputXml = XDocument.Parse(xml);
            }
            catch (Exception ex)
            {
                Log.Error(string.Format("LeadForce.API.CreateAction error, SiteId: {0}, UserName: {1}, Xml: {2}", siteId, username, xml), ex);
                return(StatusHelper.FormatMessage(StatusCodes.InvalidParameters, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            try
            {
                Actions.CreateAction(siteId, inputXml.Document);
                _result = StatusHelper.FormatMessage(StatusCodes.Ok, MethodBase.GetCurrentMethod().Name, _result);

                //CounterServiceHelper.CheckEvent(siteId, Guid.Parse(inputXml.XPathSelectElement("/LeadForceRequest/Action/ContactID").Value));
            }
            catch (Exception ex)
            {
                Log.Error(string.Format("LeadForce.API.CreateAction error, SiteId: {0}, UserName: {1}, Xml: {2}", siteId, username, xml), ex);
                return(StatusHelper.FormatMessage(StatusCodes.InternalError, MethodBase.GetCurrentMethod().Name, _result).ToString(SaveOptions.DisableFormatting));
            }

            return(_result.ToString(SaveOptions.DisableFormatting));
        }