예제 #1
0
        public MsCrmResultObj <AssemblerInfo> GetUser(string token, string emailaddress, string password)
        {
            MsCrmResultObj <AssemblerInfo> returnValue = new MsCrmResultObj <AssemblerInfo>();

            LoginSession ls = new LoginSession();

            try
            {
                #region | CHECK SESSION |
                MsCrmResultObj <LoginSession> sessionResult = GetUserSession(token);

                if (!sessionResult.Success)
                {
                    returnValue.Result = sessionResult.Result;
                    return(returnValue);
                }
                else
                {
                    ls = sessionResult.ReturnObject;
                }

                #endregion

                _sda = new SqlDataAccess();
                _sda.openConnection(Globals.ConnectionString);

                returnValue = AssemblyRequestHelper.GetAssemblerInfo(emailaddress, password, _sda);
            }
            catch (Exception ex)
            {
                returnValue.HasException = true;
                returnValue.Result       = ex.Message;
            }
            finally
            {
                if (_sda != null)
                {
                    _sda.closeConnection();
                }
            }

            return(returnValue);
        }
예제 #2
0
        public MsCrmResultObj <List <AssemblerInfo> > GetAllMemberList(string token)
        {
            MsCrmResultObj <List <AssemblerInfo> > returnValue = new MsCrmResultObj <List <AssemblerInfo> >();

            LoginSession ls = new LoginSession();

            try
            {
                #region | CHECK SESSION |
                MsCrmResultObj <LoginSession> sessionResult = GetUserSession(token);

                if (!sessionResult.Success)
                {
                    returnValue.Result = sessionResult.Result;
                    return(returnValue);
                }
                else
                {
                    ls = sessionResult.ReturnObject;
                }

                #endregion

                _sda = new SqlDataAccess();
                _sda.openConnection(Globals.ConnectionString);

                returnValue = AssemblyRequestHelper.GetAllMemberList(new Guid(Globals.DefaultPortalId), _sda);
            }
            catch (Exception ex)
            {
                returnValue.HasException = true;
                returnValue.Result       = ex.Message;
            }
            finally
            {
                if (_sda != null)
                {
                    _sda.closeConnection();
                }
            }

            return(returnValue);
        }
예제 #3
0
        private void SendSurveyMail(Guid npsSurveyId, string emailAddress, Guid requestId)
        {
            MsCrmResultObj <AssemblyRequestInfo> resultRequestInfo = AssemblyRequestHelper.GetAssemblyRequestInfo(requestId, _sda);

            AssemblyRequestInfo requestInfo;

            if (resultRequestInfo.Success)
            {
                requestInfo = resultRequestInfo.ReturnObject;
            }
            else
            {
                FileLogHelper.LogFunction(this.GetType().Name, "SendNpsSurvey_ServiceProcess_SenSurveydMail_REQUEST_INFO_NULL:" + resultRequestInfo.Result, ERROR_LOG_PATH);
                UpdateNpsSurveyEntityStatusCode(npsSurveyId, NpsSurveyStatus.NotSent);

                return;
            }


            if (!string.IsNullOrWhiteSpace(requestInfo.EmailAddress) && !string.IsNullOrWhiteSpace(requestInfo.FirstName) && !string.IsNullOrWhiteSpace(requestInfo.LastName))
            {
                string fullName = requestInfo.FirstName + " " + requestInfo.LastName;
                string mailBody = string.Format(Constants.SURVEY_MAILD_BODY, fullName, npsSurveyId.ToString());

                FileLogHelper.LogFunction(this.GetType().Name, "SendNpsSurvey_ServiceProcess_SendSurveydMail_INFO:" + requestInfo.EmailAddress, ERROR_LOG_PATH);
                MsCrmResult resultSendMail = SendMail(requestInfo.EmailAddress, "Kale Anahtar Değerlendirme Anketi", mailBody);

                if (resultSendMail.Success)
                {
                    UpdateNpsSurveyEntityStatusCode(npsSurveyId, NpsSurveyStatus.Sent);
                }
                else
                {
                    FileLogHelper.LogFunction(this.GetType().Name, "SendNpsSurvey_ServiceProcess_SendMail_EXCEPTION:" + resultSendMail.Result, ERROR_LOG_PATH);
                    UpdateNpsSurveyEntityStatusCode(npsSurveyId, NpsSurveyStatus.NotSent);
                }
            }
        }
예제 #4
0
        public void Execute(IServiceProvider serviceProvider)
        {
            SqlDataAccess sda = null;

            try
            {
                sda = new SqlDataAccess();
                sda.openConnection(Globals.ConnectionString);

                #region | SERVICE |
                IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

                #region | Validate Request |
                //Target yoksa veya Entity tipinde değilse, devam etme.
                if (!context.InputParameters.Contains("Target") || !(context.InputParameters["Target"] is Entity))
                {
                    return;
                }
                #endregion

                IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                IOrganizationService        service        = serviceFactory.CreateOrganizationService(context.UserId);

                #endregion

                Entity entity = (Entity)context.InputParameters["Target"];

                #region |DEFINE IMAGE IF EXISTS|
                Entity preImage = null;
                if (context.PreEntityImages.Contains("PreImage") && context.PreEntityImages["PreImage"] is Entity)
                {
                    preImage = (Entity)context.PreEntityImages["PreImage"];
                }

                #endregion

                #region | VARIABLES |
                string customerFirstName   = null;
                string customerLastName    = null;
                string customerMobilePhone = null;
                string customerFullName    = null;
                string assemblerFullName   = null;

                int statusCode    = 0;
                int oldStatusCode = 0;

                AssemblerInfo     assemblerInfo = null;
                List <ScoreLimit> lstLimits     = new List <ScoreLimit>();

                EntityReference portal = null;
                EntityReference user   = null;

                if (preImage.Contains("new_portalid") && preImage["new_portalid"] != null)
                {
                    portal = (EntityReference)preImage["new_portalid"];
                }

                if (preImage.Contains("new_userid") && preImage["new_userid"] != null)
                {
                    user = (EntityReference)preImage["new_userid"];

                    MsCrmResultObj <AssemblerInfo> resultAssembler = AssemblyRequestHelper.GetAssemblerInfo(user.Id, sda);

                    if (resultAssembler.Success)
                    {
                        assemblerInfo = resultAssembler.ReturnObject;
                    }
                    else
                    {
                        throw new Exception("Anahtarcı bilgisi alınamadı.Hata:" + resultAssembler.Result);
                    }
                }

                if (preImage.Contains("new_firstname") && preImage["new_firstname"] != null)
                {
                    customerFirstName = preImage["new_firstname"].ToString();
                }

                if (preImage.Contains("new_lastname") && preImage["new_lastname"] != null)
                {
                    customerLastName = preImage["new_lastname"].ToString();
                }

                if (preImage.Contains("new_mobilephone") && preImage["new_mobilephone"] != null)
                {
                    customerMobilePhone = preImage["new_mobilephone"].ToString();
                }

                if (!string.IsNullOrWhiteSpace(customerFirstName) && !string.IsNullOrWhiteSpace(customerLastName))
                {
                    customerFullName = customerFirstName + " " + customerLastName;
                }

                if (entity.Contains("statuscode") && entity["statuscode"] != null)
                {
                    statusCode = ((OptionSetValue)entity["statuscode"]).Value;
                }

                if (preImage.Contains("statuscode") && preImage["statuscode"] != null)
                {
                    oldStatusCode = ((OptionSetValue)preImage["statuscode"]).Value;
                }
                #endregion

                if (statusCode != oldStatusCode && (statusCode == (int)DiscoveryFormStatus.CrmConfirmed || statusCode == (int)DiscoveryFormStatus.Result_Negative))
                {
                    string statusText = string.Empty;

                    if (statusCode == (int)DiscoveryFormStatus.CrmConfirmed)
                    {
                        statusText = "Kale Onayladı";
                    }
                    else if (statusCode == (int)DiscoveryFormStatus.Result_Negative)
                    {
                        statusText = "Sonuç Olumsuz";
                    }

                    string customerSmsText = @"Sayın {0}, {1} müşterisine ait Ücretsiz Keşif Formu durumu {2} olarak değişmiştir. Bilgilerinize.";

                    Entity ent = new Entity("new_sms");
                    ent["new_message"]     = string.Format(customerSmsText, assemblerFullName, customerFullName, statusText);
                    ent["new_phonenumber"] = assemblerInfo.MobilePhoneNumber;
                    ent["new_name"]        = customerFirstName + " " + customerLastName + "|KGS Formu Durum Değişimi";
                    ent["new_userid"]      = user;

                    service.Create(ent);
                }

                if (entity.Contains("statuscode") && entity["statuscode"] != null &&
                    ((OptionSetValue)entity["statuscode"]).Value == (int)DiscoveryFormStatus.CrmConfirmed)
                {
                    MsCrmResultObject limitRes = ScoreHelper.GetScoreLimitsByType(ScoreType.KGSSales, sda);

                    if (limitRes.Success)
                    {
                        lstLimits = (List <ScoreLimit>)limitRes.ReturnObject;

                        for (int i = 0; i < lstLimits.Count; i++)
                        {
                            Score sc = new Score()
                            {
                                Point     = lstLimits[i].Point,
                                Portal    = portal,
                                User      = user,
                                ScoreType = ScoreType.KGSSales
                            };

                            MsCrmResult scoreRes = ScoreHelper.CreateScore(sc, service);

                            if (scoreRes.Success)
                            {
                                break;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //LOG
                throw new InvalidPluginExecutionException(ex.Message);
            }
            finally
            {
                if (sda != null)
                {
                    sda.closeConnection();
                }
            }
        }
예제 #5
0
        public void Execute(IServiceProvider serviceProvider)
        {
            SqlDataAccess sda = null;

            try
            {
                sda = new SqlDataAccess();
                sda.openConnection(Globals.ConnectionString);

                #region | SERVICE |
                IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

                #region | Validate Request |
                //Target yoksa veya Entity tipinde değilse, devam etme.
                if (!context.InputParameters.Contains("Target") || !(context.InputParameters["Target"] is Entity))
                {
                    return;
                }
                #endregion

                IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
                IOrganizationService        service        = serviceFactory.CreateOrganizationService(context.UserId);

                #endregion

                Entity entity = (Entity)context.InputParameters["Target"];

                #region | VARIABLES |

                EntityReference userId        = null;
                EntityReference cityId        = null;
                EntityReference townId        = null;
                AssemblerInfo   assemblerInfo = null;

                string customerFirstName   = null;
                string customerLastName    = null;
                string customerMobilePhone = null;
                string customerFullName    = null;
                string assemblerFullName   = null;

                if (entity.Contains("new_userid") && entity["new_userid"] != null)
                {
                    userId = (EntityReference)entity["new_userid"];

                    MsCrmResultObj <AssemblerInfo> resultAssembler = AssemblyRequestHelper.GetAssemblerInfo(userId.Id, sda);

                    if (resultAssembler.Success)
                    {
                        assemblerInfo = resultAssembler.ReturnObject;
                    }
                    else
                    {
                        throw new Exception("Anahtarcı bilgisi alınamadı.Hata:" + resultAssembler.Result);
                    }
                }

                if (entity.Contains("new_cityid") && entity["new_cityid"] != null)
                {
                    cityId = (EntityReference)entity["new_cityid"];
                }

                if (entity.Contains("new_townid") && entity["new_townid"] != null)
                {
                    townId = (EntityReference)entity["new_townid"];
                }

                if (entity.Contains("new_firstname") && entity["new_firstname"] != null)
                {
                    customerFirstName = entity["new_firstname"].ToString();
                }

                if (entity.Contains("new_lastname") && entity["new_lastname"] != null)
                {
                    customerLastName = entity["new_lastname"].ToString();
                }

                if (entity.Contains("new_mobilephone") && entity["new_mobilephone"] != null)
                {
                    customerMobilePhone = entity["new_mobilephone"].ToString();
                }

                if (!string.IsNullOrWhiteSpace(customerFirstName) && !string.IsNullOrWhiteSpace(customerLastName))
                {
                    customerFullName = customerFirstName + " " + customerLastName;
                }

                if (assemblerInfo != null && !string.IsNullOrWhiteSpace(assemblerInfo.FirstName) && !string.IsNullOrWhiteSpace(assemblerInfo.LastName))
                {
                    assemblerFullName = assemblerInfo.FirstName + " " + assemblerInfo.LastName;
                }

                #endregion

                #region | CREATE SMSs |

                if (!string.IsNullOrWhiteSpace(customerMobilePhone) && !string.IsNullOrWhiteSpace(customerFirstName) &&
                    !string.IsNullOrWhiteSpace(customerLastName) && assemblerInfo != null)
                {
                    string customerSmsText = @"Sayın {0}, www.kalekilitesatis.com.tr sitemizden yaptığınız alışveriş için teşekkür ederiz. Montaj için anahtarcı bilgileri: {1}, Tel: {2}";

                    Entity ent = new Entity("new_sms");
                    ent["new_message"]     = string.Format(customerSmsText, customerFullName, assemblerFullName, assemblerInfo.MobilePhoneNumber);
                    ent["new_phonenumber"] = customerMobilePhone;
                    ent["new_name"]        = customerFirstName + " " + customerLastName + "|Montaj Talebi Mesajı";

                    service.Create(ent);
                }

                if (!string.IsNullOrWhiteSpace(assemblerInfo.MobilePhoneNumber) && !string.IsNullOrWhiteSpace(customerFirstName) &&
                    !string.IsNullOrWhiteSpace(customerLastName) && assemblerInfo != null && userId != null)
                {
                    string customerSmsText = @"Sayın {0}, www.kalekilitesatis.com.tr sitemizden satışı yapılan ürünün montajı için müşteri bilgileri: {1} Tel: {2} şeklindedir. Müşterimizle irtibata geçmenizi rica ederiz.";

                    Entity ent = new Entity("new_sms");
                    ent["new_message"]     = string.Format(customerSmsText, assemblerFullName, customerFullName, customerMobilePhone);
                    ent["new_phonenumber"] = assemblerInfo.MobilePhoneNumber;
                    ent["new_name"]        = customerFirstName + " " + customerLastName + "|Montaj Talebi Mesajı";
                    ent["new_userid"]      = userId;

                    service.Create(ent);
                }


                #endregion

                #region | CREATE NPS Survey |

                Entity entSurvey = new Entity("new_npssurvey");
                entSurvey["new_name"]             = customerFullName + "|" + DateTime.Now.ToString("dd.MM.yyyy HH:mm");
                entSurvey["new_asseblyrequestid"] = entity.ToEntityReference();

                service.Create(entSurvey);

                #endregion
            }
            catch (Exception ex)
            {
                //LOG
                throw new InvalidPluginExecutionException(ex.Message + "->>>" + ex.StackTrace);
            }
            finally
            {
                if (sda != null)
                {
                    sda.closeConnection();
                }
            }
        }
예제 #6
0
        public MsCrmResult CreateAsseblyRequest(string token, AssemblyRequestInfo requestInfo)
        {
            MsCrmResult returnValue = new MsCrmResult();

            LoginSession ls = new LoginSession();

            try
            {
                #region | CHECK SESSION |
                MsCrmResultObj <LoginSession> sessionResult = GetUserSession(token);

                if (!sessionResult.Success)
                {
                    returnValue.Result = sessionResult.Result;
                    return(returnValue);
                }
                else
                {
                    ls = sessionResult.ReturnObject;
                }

                #endregion

                _service = MSCRM.GetOrgService(true);

                //_sda = new SqlDataAccess();
                //_sda.openConnection(Globals.ConnectionString);

                #region | DATA VALIDATION |

                if (string.IsNullOrWhiteSpace(requestInfo.FirstName))
                {
                    returnValue.Result = "Ad alanı boş olamaz.";

                    return(returnValue);
                }

                if (string.IsNullOrWhiteSpace(requestInfo.LastName))
                {
                    returnValue.Result = "Soyad alanı boş olamaz.";

                    return(returnValue);
                }

                if (string.IsNullOrWhiteSpace(requestInfo.MobilePhoneNumber))
                {
                    returnValue.Result = "Cep Telefonu alanı boş olamaz.";

                    return(returnValue);
                }

                if (!ValidationHelper.CheckTelephoneNumber(requestInfo.MobilePhoneNumber).isFormatOK)
                {
                    returnValue.Result = "Cep Telefonu formatı hatalıdır. Örn:+90-5xx-xxxxxxx şeklinde olmalıdır.";

                    return(returnValue);
                }

                if (string.IsNullOrWhiteSpace(requestInfo.EmailAddress))
                {
                    returnValue.Result = "Email adresi alanı boş olamaz.";

                    return(returnValue);
                }

                if (string.IsNullOrWhiteSpace(requestInfo.AddressDetail))
                {
                    returnValue.Result = "Adres detayı alanı boş olamaz.";

                    return(returnValue);
                }

                if (requestInfo.RequestCityId == null || requestInfo.RequestCityId == Guid.Empty)
                {
                    returnValue.Result = "İl alanı boş olamaz.";

                    return(returnValue);
                }

                if (requestInfo.RequestTownId == null || requestInfo.RequestTownId == Guid.Empty)
                {
                    returnValue.Result = "İlçe alanı boş olamaz.";

                    return(returnValue);
                }

                #endregion

                requestInfo.Name = requestInfo.Name + "|" + requestInfo.LastName + "|" + DateTime.Now.ToString("dd.MM.yyyy HH:mm");

                returnValue = AssemblyRequestHelper.CreateAssemblyRequest(requestInfo, _service);
            }
            catch (Exception ex)
            {
                returnValue.HasException = true;
                returnValue.Result       = ex.Message;
            }
            finally
            {
                if (_sda != null)
                {
                    _sda.closeConnection();
                }
            }

            return(returnValue);
        }