コード例 #1
0
        public static void AddFilterCount(IDialogContext context, Filter f)
        {
            List <FilterCount> counts = GetFiltersCount(context);

            foreach (FilterCount c in counts)
            {
                if (c.Filter.FilterName.Equals(f.FilterName) && c.Filter.Value.Equals(f.Value))
                {
                    c.NSearches += 1;
                    return;
                }
            }

            FilterCount cnt = new FilterCount();

            cnt.Filter    = f;
            cnt.NSearches = 1;

            counts.Add(cnt);
            context.PrivateConversationData.SetValue <List <FilterCount> >(FILTER_COUNT_ATR, counts);

            if (IsLoggedIn(context))
            {
                User u = GetUser(context);
                CRMController.AddFilterUsage(u.Id, u.Country, f);
            }
        }
コード例 #2
0
        public static void AddProductClick(IDialogContext context, string id)
        {
            List <ProductClicks> clicks = GetProductClicks(context);

            foreach (ProductClicks c in clicks)
            {
                if (c.ProductId.ToString().Equals(id))
                {
                    c.NClicks += 1;
                    return;
                }
            }

            ProductClicks pc = new ProductClicks();

            pc.NClicks   = 1;
            pc.ProductId = new ObjectId(id);

            clicks.Add(pc);
            context.PrivateConversationData.SetValue <List <ProductClicks> >(PRODUCT_CLICKS_ATR, clicks);

            if (IsLoggedIn(context))
            {
                User u = GetUser(context);
                CRMController.AddProductClick(u.Id, u.Country, new ObjectId(id));
            }
        }
コード例 #3
0
        public void GetLines_GetClientLines_LinesResponse()
        {
            // ARRANGE
            var         line  = new Line(1, "123", eStatus.available);
            List <Line> lines = new List <Line>
            {
                new Line(123, "123", eStatus.available),
                new Line(123, "05426", eStatus.available),
            };
            var client = new Client
            {
                ClientName = "ddd",
                LastName   = "sds",
                ClientID   = 123
            };

            mockCrmRepository.Setup(x => x.AddClient(It.IsAny <Client>()))
            .Returns(client);
            mockCrmRepository.Setup(x => x.GetLines(It.IsAny <int>()))
            .Returns(lines);
            controller = new CRMController(mockCrmRepository.Object)
            {
                Request       = new System.Net.Http.HttpRequestMessage(),
                Configuration = new HttpConfiguration()
            };
            // ACT
            var response = controller.GetLines(123);

            // ASSERT
            Assert.AreEqual(response.StatusCode, System.Net.HttpStatusCode.OK);
            Assert.AreEqual(2, JsonConvert.DeserializeObject <List <Line> >(response.Content.ReadAsStringAsync().Result).Count);
        }
コード例 #4
0
        public void CreateServiceAgent_LineAvailable_ReturnLine()
        {
            // ARRANGE
            var service = new ServiceAgent("sirage", "123");

            mockCrmRepository.Setup(x => x.AddServiceAgent(It.IsAny <ServiceAgent>()))
            .Returns(service);
            controller = new CRMController(mockCrmRepository.Object);
            // ACT
            var result = controller.CreateServiceAgent(service);

            // ASSERT
            Assert.IsNotNull(result);
            Assert.AreEqual("sirage", result.AgentName);
        }
コード例 #5
0
        public void CreateClient_ClientAvailable_ClientResponse()
        {
            // ARRANGE
            var client = new Client("sanad", "fff", 1231, 3, "das", "1231", 1);

            mockCrmRepository.Setup(x => x.AddClient(It.IsAny <Client>())).Returns(client);
            controller = new CRMController(mockCrmRepository.Object)
            {
                Request       = new System.Net.Http.HttpRequestMessage(),
                Configuration = new HttpConfiguration()
            };
            // ACT
            var response = controller.CreateClient(client);

            // ASSERT
            Assert.AreEqual(response.StatusCode, System.Net.HttpStatusCode.OK);
            Assert.IsNotNull(response);
        }
コード例 #6
0
        public void CreateLine_LineAvailable_LineResponse()
        {
            // ARRANGE
            var line = new Line(1, "123", eStatus.available);

            mockCrmRepository.Setup(x => x.AddLine(It.IsAny <Line>())).Returns(line);
            controller = new CRMController(mockCrmRepository.Object)
            {
                Request       = new System.Net.Http.HttpRequestMessage(),
                Configuration = new HttpConfiguration()
            };
            // ACT
            var response = controller.CreateLine(line);

            // ASSERT
            Assert.AreEqual(response.StatusCode, System.Net.HttpStatusCode.OK);
            Assert.IsNotNull(response);
        }
コード例 #7
0
        public static void Login(IDialogContext context, User user)
        {
            Context  user_context = ContextController.GetContext(user.Id);
            Customer user_crm     = CRMController.GetCustomer(user.Id);

            var userdata = context.PrivateConversationData;

            //User login
            userdata.SetValue <bool>(LOGIN_ATR, true);

            //User info
            userdata.SetValue <string>(USER_ID_ATR, user.Id.ToString());
            userdata.SetValue <string>(USER_COUNTRY_ATR, user.Country);
            userdata.SetValue <string>(USER_NAME_ATR, user.Name);
            userdata.SetValue <string>(USER_EMAIL_ATR, user.Email);
            userdata.SetValue <string>(USER_CARD_ATR, user.CustomerCard);
            userdata.SetValue <string>(USER_GENDER_ATR, user.Gender);

            //User context
            List <string> compare = new List <string>();
            List <string> wishes  = new List <string>();

            foreach (ObjectId w in user_context.WishList.ToList())
            {
                wishes.Add(w.ToString());
            }

            foreach (ObjectId c in user_context.Comparator.ToList())
            {
                compare.Add(c.ToString());
            }

            userdata.SetValue <List <string> >(WISHLIST_ATR, wishes);
            userdata.SetValue <List <string> >(COMPARATOR_ATR, compare);

            //User crm
            userdata.SetValue <List <FilterCount> >(FILTER_COUNT_ATR, user_crm.FiltersCount.ToList());
            userdata.SetValue <List <ProductClicks> >(PRODUCT_CLICKS_ATR, user_crm.ProductsClicks.ToList());
        }
コード例 #8
0
 public IntResult GetCRMUserCount(int itemId, string name, string email, int CALType)
 {
     return(CRMController.GetCRMUsersCount(itemId, name, email, CALType));
 }
コード例 #9
0
 public OrganizationUsersPagedResult GetCRMUsersPaged(int itemId, string sortColumn, string sortDirection, string name, string email,
                                                      int startRow, int maximumRows)
 {
     return(CRMController.GetCRMUsers(itemId, sortColumn, sortDirection, name, email, startRow, maximumRows));
 }
コード例 #10
0
 public ResultObject DeleteCRMOrganization(int organizationId)
 {
     return(CRMController.DeleteOrganization(organizationId));
 }
コード例 #11
0
 public CurrencyArrayResultObject GetCurrencyByServiceId(int serviceId)
 {
     return(CRMController.GetCurrencyByServiceId(serviceId));
 }
コード例 #12
0
 public CurrencyArrayResultObject GetCurrency(int packageId)
 {
     return(CRMController.GetCurrency(packageId));
 }
コード例 #13
0
 public ResultObject ChangeUserState(int itemId, int accountId, bool disable)
 {
     return(CRMController.ChangeUserState(itemId, accountId, disable));
 }
コード例 #14
0
 public ResultObject SetUserRoles(int itemId, int accountId, int packageId, Guid[] roles)
 {
     return(CRMController.SetUserRoles(itemId, accountId, packageId, roles));
 }
コード例 #15
0
 public int[] GetInstalledLanguagePacksByServiceId(int serviceId)
 {
     return(CRMController.GetInstalledLanguagePacksByServiceId(serviceId));
 }
コード例 #16
0
 public int[] GetInstalledLanguagePacks(int packageId)
 {
     return(CRMController.GetInstalledLanguagePacks(packageId));
 }
コード例 #17
0
 public long GetMaxDBSize(int itemId, int packageId)
 {
     return(CRMController.GetMaxDBSize(itemId, packageId));
 }
コード例 #18
0
 public ResultObject SetMaxDBSize(int itemId, int packageId, long maxSize)
 {
     return(CRMController.SetMaxDBSize(itemId, packageId, maxSize));
 }
コード例 #19
0
 public CrmUserResult GetCrmUser(int itemId, int accountId)
 {
     return(CRMController.GetCrmUser(itemId, accountId));
 }
コード例 #20
0
 public CrmRolesResult GetCrmRoles(int itemId, int accountId, int packageId)
 {
     return(CRMController.GetCRMRoles(itemId, accountId, packageId));
 }
コード例 #21
0
 public CRMBusinessUnitsResult GetBusinessUnits(int itemId, int packageId)
 {
     return(CRMController.GetCRMBusinessUnits(itemId, packageId));
 }
コード例 #22
0
 public UserResult CreateCRMUser(OrganizationUser user, int packageId, int itemId, Guid businessUnitOrgId, int CALType)
 {
     return(CRMController.CreateCRMUser(user, packageId, itemId, businessUnitOrgId, CALType));
 }
コード例 #23
0
 public OrganizationResult CreateOrganization(int organizationId, string baseCurrencyCode, string baseCurrencyName, string baseCurrencySymbol, string regionName, int userId, string collation, int baseLanguageCode)
 {
     return(CRMController.CreateOrganization(organizationId, baseCurrencyCode, baseCurrencyName, baseCurrencySymbol, regionName, userId, collation, baseLanguageCode));
 }
コード例 #24
0
 public ResultObject SetUserCALType(int itemId, int accountId, int packageId, int CALType)
 {
     return(CRMController.SetUserCALType(itemId, accountId, packageId, CALType));
 }
コード例 #25
0
 public StringArrayResultObject GetCollation(int packageId)
 {
     return(CRMController.GetCollation(packageId));
 }
コード例 #26
0
 public StringArrayResultObject GetCollationByServiceId(int serviceId)
 {
     return(CRMController.GetCollationByServiceId(serviceId));
 }
コード例 #27
0
        private static void PopulateCRMReportItems(Organization org, EnterpriseSolutionStatisticsReport report, string topReseller)
        {
            if (org.CrmOrganizationId == Guid.Empty)
            {
                return;
            }

            List <OrganizationUser> users;

            try
            {
                users = CRMController.GetCRMOrganizationUsers(org.Id);
            }
            catch (Exception ex)
            {
                throw new ApplicationException(
                          string.Format("Could not get CRM Organization users. OrgId : {0}", org.Id), ex);
            }

            CRM crm;

            try
            {
                crm = GetCRMProxy(org.PackageId);
            }
            catch (Exception ex)
            {
                throw new ApplicationException(string.Format("Could not get CRM Proxy. PackageId: {0}", org.PackageId),
                                               ex);
            }

            foreach (OrganizationUser user in users)
            {
                try
                {
                    CRMOrganizationStatistics stats = new CRMOrganizationStatistics();

                    PopulateBaseItem(stats, org, topReseller);

                    stats.CRMOrganizationId = org.CrmOrganizationId;
                    stats.CRMUserName       = user.DisplayName;

                    Guid          crmUserId = CRMController.GetCrmUserId(user.AccountId);
                    CrmUserResult res       = crm.GetCrmUserById(crmUserId, org.OrganizationId);
                    if (res.IsSuccess && res.Value != null)
                    {
                        stats.ClientAccessMode = res.Value.ClientAccessMode;
                        stats.CRMDisabled      = res.Value.IsDisabled;
                    }
                    else
                    {
                        StringBuilder sb = new StringBuilder("Could not get CRM user by id.");
                        foreach (string str in res.ErrorCodes)
                        {
                            sb.AppendFormat("\n{0};", str);
                        }
                        throw new ApplicationException(sb.ToString());
                    }

                    report.CRMReport.Items.Add(stats);
                }
                catch (Exception ex)
                {
                    TaskManager.WriteError(ex);
                }
            }
        }
コード例 #28
0
        public static string Register(List <InputData> fields, IDialogContext context)
        {
            string fail = "";

            string name   = "";
            string email  = "";
            string card   = "";
            string gender = "";

            foreach (InputData f in fields)
            {
                switch (f.attribute)
                {
                case name_field:
                    if (f.value != "")
                    {
                        name = f.value;
                    }
                    else
                    {
                        fail += "Preciso que me diga o seu nome.\n";
                    }
                    break;

                case email_field:
                    if (f.value != "")
                    {
                        try
                        {
                            var m = new MailAddress(f.value);
                            email = f.value;
                        }
                        catch
                        {
                            fail += "O email não está no formato correcto (exemplo: [email protected]).\n";
                        }
                    }
                    else
                    {
                        fail += "Por favor insira o seu email. Com ele irei conseguir identificá-lo melhor.\n";
                    }
                    break;

                case gender_field:
                    gender = f.value;
                    break;

                case client_id_field:
                    if (f.value != "")
                    {
                        card = f.value;
                    }
                    break;
                }
            }

            if (email != StateHelper.GetUser(context).Email&& UserController.getUserByEmail(email) != null && email != "")
            {
                fail += "O email que inseriu já está associado a uma outra conversa.\n";
            }
            else
            {
                Random r = new Random();
                UserController.CreateUser(email, name, (r.Next(25) + 1).ToString(), gender);
                User u = UserController.getUserByEmail(email);
                ContextController.CreateContext(u);
                CRMController.AddCustomer(u);

                if (card != "0")
                {
                    UserController.SetCustomerCard(u, card);
                    u.CustomerCard = card;
                }

                StateHelper.SetUser(context, u);
            }
            return(fail);
        }