internal async Task <ContentItemVariantModel <UserModel> > CreateUser(IntercomUser user) { string itemName; if (user.Type == "admin") { itemName = user.Name; } else { itemName = user.Id; } var userItem = await CreateUserItem(itemName, user.Id); UserModel userModel = new UserModel { Name = user.Name, Type = user.Type, Email = user.Email, Id = user.Id, IntercomLink = "<p><a href=\"" + IntercomFunctions.GetIntercomUserLink(user.Id, user.Type) + "\">Link to intercom</a></p>" }; var userVariant = await CreateUserVariant(userModel, ContentItemIdentifier.ById(userItem.Id)); var publishUser = await PublishItemVariant(userItem.Id.ToString()); return(userVariant); }
internal IntercomUser GetIntercomUser(GenericIntercomUser genericUser) { if (!userList.ContainsKey(genericUser.Id)) { IntercomUser newUser; switch (genericUser.Type) { case "admin": Admin admin; try { logger.Trace("Downloading admin from Intercom: " + genericUser.Id); admin = adminsClient.View(genericUser.Id); newUser = new IntercomUser(admin); } catch (Intercom.Exceptions.ApiException e) { if (e.StatusCode == 404) { logger.Trace("Admin request returned 404 for: " + genericUser.Id); newUser = new IntercomUser() { Id = genericUser.Id, Type = genericUser.Type, Name = "Non-existing admin", Email = "" }; } else { logger.Error(e, "Couldn't download admin from Intercom."); throw e; } } userList.Add(genericUser.Id, newUser); break; case "user": case "lead": User user; try { logger.Trace("Downloading user from Intercom: " + genericUser.Id); user = usersClient.View(genericUser.Id); newUser = new IntercomUser(user); } catch (Intercom.Exceptions.ApiException e) { if (e.StatusCode == 404) { logger.Trace("User request returned 404 for: " + genericUser.Id); newUser = new IntercomUser() { Id = genericUser.Id, Type = genericUser.Type, Name = "Non-existing user", Email = "" }; } else { logger.Error(e, "Couldn't download user from Intercom."); throw e; } } userList.Add(genericUser.Id, newUser); break; default: logger.Warn("Unknown type of user requested."); break; } } return(userList[genericUser.Id]); }