aboutsummaryrefslogtreecommitdiff
path: root/Timeline/Services/User.cs
blob: f63a374ef2a6994c99b0a36125f879c323531d5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using Microsoft.AspNetCore.Mvc;
using System;
using Timeline.Controllers;

namespace Timeline.Services
{
    public class User
    {
        public string? Username { get; set; }
        public string? Nickname { get; set; }
        public string? AvatarUrl { get; set; }

        #region adminsecret
        public bool? Administrator { get; set; }
        #endregion adminsecret

        #region secret
        public long? Id { get; set; }
        public string? Password { get; set; }
        public long? Version { get; set; }
        #endregion secret
    }

    public static class UserExtensions
    {
        public static User EraseSecretAndFinalFill(this User user, IUrlHelper urlHelper, bool adminstrator)
        {
            if (user == null)
                throw new ArgumentNullException(nameof(user));

            var result = new User
            {
                Username = user.Username,
                Nickname = user.Nickname,
                AvatarUrl = urlHelper.ActionLink(action: nameof(UserAvatarController.Get), controller: nameof(UserAvatarController), values: new
                {
                    user.Username
                })
            };

            if (adminstrator)
            {
                result.Administrator = user.Administrator;
            }

            return result;
        }
    }
}