Example #1
0
        private async Task <IActionResult> ExportPoints <T>(int groupid) where T : class
        {
            try

            {
                using (NHibernate.IStatelessSession session = sessionFactory.OpenStatelessSession())
                {
                    //DigitalOutputGroup s;s.
                    var @object = await session.CreateCriteria <T>().Add(Restrictions.Eq("Groupid", groupid)).ListAsync <T>();

                    if (@object == null || @object.Count == 0)
                    {
                        return(BadRequest(ApiResult.BadRequest($"ėŒ€ģƒ GROUP ID {groupid}ź°€ ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤")));
                    }

                    byte[] data     = ExportCSVFormat <T>(@object);
                    string filename = $"{typeof(T).Name}.csv";

                    System.Net.Mime.ContentDisposition cd = new System.Net.Mime.ContentDisposition
                    {
                        FileName = Uri.EscapeUriString(filename),
                        Inline   = false // false = prompt the user for downloading;  true = browser to try to show the file inline
                    };
                    Response.Headers.Add("Content-Disposition", cd.ToString());
                    Response.Headers.Add("X-Content-Type-Options", "nosniff");
                    return(File(data, "application/octet-stream"));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(ApiResult.BadRequest(ex.Message)));
            }
        }
Example #2
0
        public async Task <ApiResult> AddMember(int projectId, int userId)
        {
            bool projectExists = _projectService.ProjectExists(projectId);

            if (!projectExists)
            {
                return(ApiResult.BadRequest("Project does not exist"));
            }

            //HACK: this works but is bad for performance since it gets the entire user object just to check if it exists
            bool userExists = await _userManager.FindByIdAsync(userId.ToString()) != null;

            if (!userExists)
            {
                return(ApiResult.BadRequest("User does not exist"));
            }

            bool userIsMember = _projectService.UserIsMember(projectId, userId);

            if (userIsMember)
            {
                return(ApiResult.BadRequest("User is already member"));
            }

            _projectMemberService.CreateProjectMember(projectId, userId);

            return(ApiResult.NoContent());
        }
Example #3
0
        private async Task <IActionResult> Remove <T>(int id) where T : class
        {
            try

            {
                using (NHibernate.ISession session = sessionFactory.OpenSession())
                    using (var transaction = session.BeginTransaction())
                    {
                        //DigitalOutputGroup s;s.
                        var @object = await session.CreateCriteria <T>().Add(Restrictions.Eq("Id", id)).UniqueResultAsync <T>();

                        if (@object == null)
                        {
                            return(BadRequest(ApiResult.BadRequest($"ėŒ€ģƒ ID {id}ź°€ ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤")));
                        }
                        await session.DeleteAsync(@object);

                        await transaction.CommitAsync();

                        return(Ok(ApiResult.OK_200));
                    }
            }
            catch (Exception ex)
            {
                return(BadRequest(ApiResult.BadRequest(ex.Message)));
            }
        }
Example #4
0
        public async Task <ApiResult> ModifySelf(Core.Models.Users.User user)
        {
            var currentUser = await _userManager.GetUserAsync(User);

            if (currentUser.Id != user.Id)
            {
                return(ApiResult.Forbidden("You do not have access to modify a different user using this endpoint."));
            }

            var oldUser = await _userManager.FindByIdAsync(user.Id.ToString());

            if (oldUser == null)
            {
                return(ApiResult.BadRequest());
            }

            if (_userService.TryModifyUser(user, oldUser, out User newUser))
            {
                var userModel = _mapper.Map <Core.Models.Users.User>(newUser);

                return(ApiResult.Success(userModel));
            }

            return(ApiResult.BadRequest());
        }
Example #5
0
        public async Task <ApiResult> GetProfileByName(string username)
        {
            try
            {
                var profile = await _profileService.GetProfileByUsername(username);

                if (profile == null)
                {
                    return(ApiResult.NotFound("User was not found"));
                }

                var id = User.Claims.First(c => c.Type == ClaimTypes.Name).Value.ToString();

                if (id == profile.Id)
                {
                    profile.Self = true;
                }
                else
                {
                    profile.Email = null;
                }

                return(ApiResult.Success(profile));
            }
            catch (System.Exception)
            {
                return(ApiResult.BadRequest("Something went wrong"));
            }
        }
Example #6
0
        public async Task <ApiResult <Like> > AddLikeUser(int userid, int likerid)
        {
            var like = await _likeBus.GetLike(userid, likerid);

            if (like != null)
            {
                return(ApiResult <Like> .BadRequest("You already like this user"));
            }

            if (_likeBus.GetLike(likerid) == null)
            {
                return(ApiResult <Like> .NotFound("This user ws not found"));
            }

            like = new Like {
                LikeeId = likerid, LikerId = userid
            };

            if (await _likeBus.AddLike(like))
            {
                return(ApiResult <Like> .Ok());
            }

            return(ApiResult <Like> .BadRequest("Failed to like user"));
        }
Example #7
0
        public async Task <ApiResult> CreateAccount(string inviteCode, [FromBody] InvitePost invitePost)
        {
            var isValid = _userInviteService.IsValidInviteCode(inviteCode, out UserInvite invite);

            if (!isValid)
            {
                return(ApiResult.BadRequest());
            }

            var result = await _userManager.CreateAsync(new User(invite.Username)
            {
                Email = invite.Email
            }, invitePost.Password);

            if (!result.Succeeded)
            {
                return(ApiResult.BadRequest());
            }

            var user = await _userManager.FindByNameAsync(invite.Username);

            var role = await _roleManager.FindByIdAsync(invite.RoleId.ToString());

            await _userManager.AddToRoleAsync(user, role.Name);

            _userInviteService.RemoveInvite(invite.Id);

            return(ApiResult.NoContent());
        }
Example #8
0
        public async Task <ApiResult> PostUser([FromBody] UserPost userPost)
        {
            var role = await _roleManager.FindByIdAsync(userPost.RoleId.ToString());

            if (role == null)
            {
                return(ApiResult.BadRequest());
            }

            var user = await _userManager.FindByNameAsync(userPost.Username);

            //user with that username already exists
            if (user != null)
            {
                return(ApiResult.BadRequest());
            }

            try
            {
                //check if the email is valid
                if (new System.Net.Mail.MailAddress(userPost.Email).Address != userPost.Email)
                {
                    return(ApiResult.BadRequest());
                }
            }
            catch (Exception)
            {
                return(ApiResult.BadRequest());
            }

            _userInviteService.CreateInvite(userPost.Username, userPost.Email, userPost.RoleId);

            return(ApiResult.NoContent());
        }
Example #9
0
        public async Task <ApiResult> PostLogin(LoginMessage message)
        {
            User user = await _userService.LoginUser(message);

            var userModel = _mapper.Map <Core.Models.User>(user);

            return(userModel != null?ApiResult.Success(userModel) : ApiResult.BadRequest());
        }
Example #10
0
        public async Task <ApiResult> ModifyProjectImage(int projectId)
        {
            if (await _projectService.TryModifyProjectImage(projectId, Request.Body, Request.ContentLength, Request.ContentType))
            {
                return(ApiResult.NoContent());
            }

            return(ApiResult.BadRequest());
        }
Example #11
0
        public ApiResult GetSettings(string pluginKey)
        {
            var settings = _pluginSettingsManager.GetPluginSettings(pluginKey);

            if (settings == null)
            {
                return(ApiResult.BadRequest());
            }

            return(ApiResult.Success(settings));
        }
Example #12
0
        public async Task <ApiResult> ModifySelfAvatar()
        {
            var currentUser = await _userManager.GetUserAsync(User);

            if (await _userService.TryModifyUserAvatar(currentUser, Request.Body, Request.ContentLength, Request.ContentType))
            {
                return(ApiResult.NoContent());
            }

            return(ApiResult.BadRequest());
        }
Example #13
0
        public ApiResult SetSettings(string pluginKey, [FromBody] PluginData pluginSettings)
        {
            bool result = _pluginSettingsManager.SetPluginSettings(pluginKey, pluginSettings);

            if (!result)
            {
                return(ApiResult.BadRequest());
            }

            return(ApiResult.NoContent());
        }
Example #14
0
        public ApiResult GetUnapprovedTweets()
        {
            try
            {
                var tweets = _moderationService.GetProfanityTweetsByStatus(Status.Unapproved);

                return(ApiResult.Success(tweets));
            }
            catch (System.Exception)
            {
                return(ApiResult.BadRequest("Something went wrong"));
            }
        }
Example #15
0
        public async Task <ApiResult <Like> > DeleteLikeUser(int userid, int likerid)
        {
            var like = new Like {
                LikeeId = likerid, LikerId = userid
            };

            if (await _likeBus.DeleteLike(like))
            {
                return(ApiResult <Like> .Ok());
            }

            return(ApiResult <Like> .BadRequest("Failed to delete like user"));
        }
Example #16
0
        public ApiResult GetFollowCounts(string id)
        {
            try
            {
                var result = _followService.GetFollowCount(id);

                return(ApiResult.Success(result));
            }
            catch (System.Exception)
            {
                return(ApiResult.BadRequest("Something went wrong"));
            }
        }
Example #17
0
        public async Task <ApiResult> UpgradeUserToModerator(string userId)
        {
            try
            {
                var result = await _moderationService.UpgradeUserToModerator(userId);

                return(result ? ApiResult.Success("User had been upgraded to admin.") : ApiResult.NotFound("Could not find user."));
            }
            catch (System.Exception)
            {
                return(ApiResult.BadRequest("Something went wrong"));
            }
        }
Example #18
0
        public async Task <ApiResult> UnApproveTweet(string tweetId)
        {
            try
            {
                var result = await _moderationService.UnApproveProfanityTweet(tweetId);

                return(result ? ApiResult.Success("Tweet has been approved.") : ApiResult.NotFound("Could not find Tweet."));
            }
            catch (System.Exception)
            {
                return(ApiResult.BadRequest("Something went wrong"));
            }
        }
Example #19
0
        public ApiResult GetTopTrends()
        {
            try
            {
                var topTrends = _trendingService.GetTopTrends();

                return(ApiResult.Success(topTrends));
            }
            catch (Exception)
            {
                return(ApiResult.BadRequest("Something went wrong"));
            }
        }
Example #20
0
        public ApiResult RemoveMember(int projectId, int memberId)
        {
            var projectMember = _projectMemberService.GetProjectMember(projectId, memberId);

            if (projectMember == null)
            {
                return(ApiResult.BadRequest());
            }

            _projectMemberService.RemoveProjectMember(projectMember);

            return(ApiResult.NoContent());
        }
Example #21
0
        public async Task <ApiResult> CreateTweet(CreateTweetMessage message)
        {
            try
            {
                var id = User.Claims.First(c => c.Type == ClaimTypes.Name).Value.ToString();

                await _tweetService.CreateTweet(id, message.TweetContent);

                return(ApiResult.Success("Created"));
            }
            catch (Exception)
            {
                return(ApiResult.BadRequest("Something went wrong"));
            }
        }
Example #22
0
        public ApiResult GetProfileTweets(string id)
        {
            try
            {
                var currentUserId = User.Claims.First(c => c.Type == ClaimTypes.Name).Value.ToString();

                var tweets = _tweetService.GetTweets(id, currentUserId);

                return(ApiResult.Success(tweets));
            }
            catch (Exception)
            {
                return(ApiResult.BadRequest("Something went wrong"));
            }
        }
Example #23
0
        public ApiResult CheckIfFollows(string id)
        {
            try
            {
                var followerId = User.Claims.First(c => c.Type == ClaimTypes.Name).Value.ToString();

                var result = _followService.FollowExists(followerId, id);

                return(ApiResult.Success(result));
            }
            catch (System.Exception)
            {
                return(ApiResult.BadRequest("Something went wrong"));
            }
        }
Example #24
0
        public async Task <ApiResult> AddMessageLike(int messageId)
        {
            var messageExists = _messageService.MessageExists(messageId);

            if (!messageExists)
            {
                return(ApiResult.BadRequest("Message does not exist"));
            }

            var user = await _userManager.GetUserAsync(User);

            _messageLikeService.LikeMessage(messageId, user.Id);

            return(ApiResult.Success(true));
        }
Example #25
0
        public async Task <ApiResult> UnlikeTweet(string tweetId)
        {
            try
            {
                var userId = User.Claims.First(c => c.Type == ClaimTypes.Name).Value.ToString();

                var result = await _likeService.RemoveLike(userId, tweetId);

                return(result ? ApiResult.Success("Success") : ApiResult.BadRequest("Something went wrong"));
            }
            catch (Exception)
            {
                return(ApiResult.BadRequest("Something went wrong"));
            }
        }
Example #26
0
        public ApiResult GetLikes(string tweetId)
        {
            try
            {
                var userId = User.Claims.First(c => c.Type == ClaimTypes.Name).Value.ToString();

                var result = _likeService.GetLikes(userId, tweetId);

                return(ApiResult.Success(result));
            }
            catch (Exception)
            {
                return(ApiResult.BadRequest("Something went wrong"));
            }
        }
Example #27
0
        public async Task <ApiResult> CreateProject([FromBody] ProjectPost projectPost)
        {
            if (!ModelState.IsValid)
            {
                return(ApiResult.BadRequest(ModelState.First(e => e.Value.Errors.Any()).Value.Errors.First().ErrorMessage));
            }

            var currentUser = await _userManager.GetUserAsync(User);

            var project = _projectService.CreateProject(projectPost.ProjectName, projectPost.ProjectDescription, currentUser.Id);

            var projectModel = _mapper.Map <Core.Models.Projects.Project>(project);

            return(ApiResult.Success(projectModel));
        }
Example #28
0
        public ApiResult GetUserTimeline()
        {
            try
            {
                var userId = User.Claims.First(c => c.Type == ClaimTypes.Name).Value.ToString();

                var tweets = _timelineService.GetUserTimeline(userId);

                return(ApiResult.Success(tweets));
            }
            catch (System.Exception)
            {
                return(ApiResult.BadRequest("Something went wrong"));
            }
        }
Example #29
0
        public async Task <ApiResult> ModifyUserTags(int userId, [FromBody] List <Core.Models.Tags.Tag> tags)
        {
            var user = await _userManager.FindByIdAsync(userId.ToString());

            if (user == null)
            {
                return(ApiResult.BadRequest());
            }

            var newTags = _userService.ModifyUserTags(user, tags);

            var newTagsModels = _mapper.Map <List <Core.Models.Tags.Tag> >(newTags);

            return(ApiResult.Success(newTagsModels));
        }
Example #30
0
        public async Task <ApiResult> ForgetUser()
        {
            try
            {
                var id = User.Claims.First(c => c.Type == ClaimTypes.Name).Value.ToString();

                var result = await _userService.ForgetUser(id);

                return(result ? ApiResult.Success("Account deleted") : ApiResult.NotFound("User could not be found"));
            }
            catch (System.Exception)
            {
                return(ApiResult.BadRequest("Something went wrong"));
            }
        }