public object GetTodayEmployeeBirthDay(GetUserId Obj)
        {
            SchoolMainContext db = new ConcreateContext().GetContext(Obj.UserId, Obj.PASSWORD);

            if (db == null)
            {
                return(new Results()
                {
                    IsSuccess = false, Message = "Invalid User"
                });
            }
            else
            {
                //for getting employee todays birthday list
                var result = db.ViewGetEmployeeBirthDetails.ToList();

                if (result.Count() == 0)
                {
                    return(new ResultBirth {
                        IsSuccess = false, Result = "No Birthdays Found Today"
                    });
                }
                else
                {
                    return(new ResultBirth {
                        IsSuccess = true, Result = result
                    });
                }
            }
        }
Пример #2
0
        public long getId(string user)
        {
            Mediator  m         = new Mediator();
            GetUserId getUserId = new GetUserId(user);

            return(m.getUserIdHandler.Handle(getUserId).response);
        }
Пример #3
0
        public object GetDashboard([FromBody] GetUserId UserId)
        {
            GetUserIdBusiness GetUserIdobj = new GetUserIdBusiness();
            var result = GetUserIdobj.getUserInfo(UserId);

            return(result);
        }
Пример #4
0
        public async Task <IActionResult> AddNewEmployee(NewEmployee newemployee)
        {
            if (HttpContext.Session.GetString("Id") == null)
            {
                HttpContext.Session.Clear();
                return(RedirectToAction("Index", "Account"));
            }



            await newemployee.addEmployee(_context);

            TempData["name"]     = newemployee.Name;
            TempData["userid"]   = newemployee.UserId;
            TempData["date"]     = newemployee.JoiningDate;
            TempData["password"] = newemployee.Password;

            TempData["designation"] = newemployee.designation;
            DateTime a;

            if (newemployee.JoiningDate < DateTime.Now.Date)
            {
                TempData["dateinvalid"] = "true";
                return(RedirectToAction("AddEmployee"));
            }

            GetUserId newemploye = new GetUserId(_context);
            int       listcount  = 0;

            listcount = newemploye.getuserid(newemployee.UserId.ToString());
            if (listcount != 0)
            {
                TempData["alreadypresent"] = "true";
                return(RedirectToAction("AddEmployee"));
            }


            if (newemployee.designation == "shopkeeper")
            {
                return(RedirectToAction("SelectBusinessEntity", new { type = 1 }));
            }

            else if (newemployee.designation == "warehousemanager")
            {
                return(RedirectToAction("SelectBusinessEntity", new { type = 2 }));
            }

            else if (newemployee.designation == "stunitmngr" || newemployee.designation == "stunitemployee")
            {
                return(RedirectToAction("SelectBusinessEntity", new { type = 3 }));
            }
            else if (newemployee.designation == "stunithead")
            {
                return(RedirectToAction("stunitdphead", new { type = 3 }));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
Пример #5
0
        public object getUserInfo(GetUserId UserId)
        {
            try
            {
                SchoolMainContext db = new ConcreateContext().GetContext(UserId.UserId, UserId.PASSWORD);
                if (db == null)
                {
                    return(new Results()
                    {
                        IsSuccess = false, Message = "Invalid User"
                    });
                }
                object result      = "";
                var    getUserType = db.VW_GET_USER_TYPE.Where(r => r.UserId == UserId.UserId).FirstOrDefault();

                if (getUserType != null)
                {
                    if (getUserType.UserType == "STUDENT")
                    {
                        STUDENTINFO_BUSINESS GetStudobj = new STUDENTINFO_BUSINESS();
                        result = GetStudobj.getStudInfo(int.Parse(getUserType.EmpCode), UserId.UserId, UserId.PASSWORD);
                    }
                    else if (getUserType.UserType == "Alumini")
                    {
                        return(new Results
                        {
                            IsSuccess = true,
                            Message = new InvalidUser()
                            {
                                IsSuccess = true, Result = "Alumini User"
                            }
                        });
                    }
                    else
                    {
                        GetTeacherInfoBusiness GetTeacherobj = new GetTeacherInfoBusiness();
                        result = GetTeacherobj.getTeacherInfo(int.Parse(getUserType.EmpCode), UserId.UserId, UserId.PASSWORD);
                    }
                    return(result);
                }

                return(new Results
                {
                    IsSuccess = false,
                    Message = new InvalidUser()
                    {
                        IsSuccess = false, Result = "User Not Found"
                    }
                });
            }
            catch (Exception ex)
            {
                return(new Results
                {
                    IsSuccess = false,
                    Message = ex.Message
                });
            }
        }
Пример #6
0
        public void Invoke_NullEmail_ReturnsZero()
        {
            // prepare
            var mockedUserRepository = new Mock <IUserRepository>();
            var action = new GetUserId(mockedUserRepository.Object);

            // action
            var userId = action.Invoke(null);

            // check
            Assert.Equal(0, userId);
        }
Пример #7
0
        // GET
        public IActionResult Index(long?employeeId)
        {
            if (employeeId == null)
            {
                employeeId = GetUserId.GetCurrentUserId(this.HttpContext);
            }


            Employee employee = _db.Users.FirstOrDefault(u => u.Id == employeeId);

            return(View(employee));
        }
 public object GetInstituteName([FromBody] GetUserId Obj)
 {
     try
     {
         InstituteBusiness Ibl = new InstituteBusiness();
         var result            = Ibl.GetInstituteName(Obj);
         return(result);
     }
     catch (Exception ex)
     {
         return(new Error {
             IsError = true, Message = ex.ToString()
         });
     }
 }
 public object GetTodayEmployeeBirthDetails([FromBody] GetUserId Obj)
 {
     try
     {
         BirthdayBusiness getBirthDay = new BirthdayBusiness();
         var result = getBirthDay.GetTodayEmployeeBirthDay(Obj);
         return(result);
     }
     catch (Exception ex)
     {
         return(new Error {
             IsError = true, Message = ex.ToString()
         });
     }
 }
Пример #10
0
        public void Invoke_EmptyRepository_ReturnsZero()
        {
            // prepare
            var findByResult         = new List <DataAccess.Models.User>();
            var mockedUserRepository = new Mock <IUserRepository>();

            mockedUserRepository.Setup(r => r.FindBy(It.IsAny <Expression <Func <DataAccess.Models.User, bool> > >()))
            .Returns(findByResult.AsQueryable);
            var action = new GetUserId(mockedUserRepository.Object);

            // action
            var userId = action.Invoke("*****@*****.**");

            // check
            Assert.Equal(0, userId);
        }
Пример #11
0
        public object GetInstituteName(GetUserId Obj)
        {
            SchoolMainContext db = new ConcreateContext().GetContext(Obj.UserId, Obj.PASSWORD);

            if (db == null)
            {
                return(new Results {
                    IsSuccess = false, Message = "Invalid User"
                });
            }
            else
            {
                var result = db.ViewGetInstituteNames.FirstOrDefault();
                return(new ResultBirth {
                    IsSuccess = true, Result = result
                });
            }
        }
Пример #12
0
        public IActionResult Search(string search)
        {
            if (User.IsInRole("chief"))
            {
                if (string.IsNullOrEmpty(search))
                {
                    ViewBag.Error = "Введите имя сотрудника для поиска";
                    return(PartialView("PartialView", _db.Employees.Where(e => e.Id != GetUserId.GetCurrentUserId(this.HttpContext)).ToList()));
                }
                search = search.ToUpper();
                List <Employee> employees = _db.Employees
                                            .Where(e => e.Id != GetUserId.GetCurrentUserId(this.HttpContext) && e.UserName != "na")
                                            .Where(p => p.UserName.ToUpper().Contains(search) ||
                                                   p.NameSurname.ToUpper().Contains(search))
                                            .ToList();
                if (employees.Count == 0)
                {
                    ViewBag.Error = "Совпадений не найдено";
                }
                return(PartialView("PartialView", employees));
            }

            if (string.IsNullOrEmpty(search))
            {
                ViewBag.Error = "Введите имя пользователя для поиска";
                return(PartialView("PartialViewManager", _db.ManagerEmployees
                                   .Include(c => c.Employee)
                                   .Include(c => c.Manager)
                                   .ToList()));
            }
            search = search.ToUpper();
            List <ManagerEmployee> managerEmployees = _db.ManagerEmployees
                                                      .Include(c => c.Employee)
                                                      .Include(c => c.Manager)
                                                      .Where(p => p.Employee.NameSurname.ToUpper().Contains(search) ||
                                                             p.Employee.UserName.ToUpper().Contains(search))
                                                      .ToList();

            if (managerEmployees.Count == 0)
            {
                ViewBag.Error = "Совпадений не найдено";
            }
            return(PartialView("PartialViewManager", managerEmployees));
        }
        public async Task <IActionResult> CreateGroup(CreateGroupModelView model)
        {
            Group group = new Group
            {
                Name      = model.Name,
                CoachId   = model.CoachId,
                BranchId  = model.BranchId,
                CreatorId = GetUserId.GetCurrentUserId(this.HttpContext)
            };

            _db.Entry(group).State = EntityState.Added;
            await _db.SaveChangesAsync();

            if (User.IsInRole("chief"))
            {
                return(RedirectToAction("Index", "Chief"));
            }

            return(RedirectToAction("Index", "Manager"));
        }
Пример #14
0
        public async Task <IActionResult> Withdraw(Withdrawal model)
        {
            CurrentSum cs = _db.CurrentSums.FirstOrDefault(p => p.BranchId == model.BranchId);

            ViewBag.CurrentSum = cs;
            if (ModelState.IsValid)
            {
                model.CreatorId = GetUserId.GetCurrentUserId(HttpContext);
                model.Date      = DateTime.Now;
                if (model.IsCash == true)
                {
                    if (cs.CashSum >= model.Sum)
                    {
                        cs.CashSum -= model.Sum;
                    }
                    else
                    {
                        ModelState.AddModelError("Sum", "Недостаточно средств для снятия");
                        return(View(model));
                    }
                }
                else
                {
                    if (cs.CreditSum >= model.Sum)
                    {
                        cs.CreditSum -= model.Sum;
                    }
                    else
                    {
                        ModelState.AddModelError("Sum", "Недостаточно средств для снятия");
                        return(View(model));
                    }
                }
                _db.Entry(model).State = EntityState.Added;
                _db.Entry(cs).State    = EntityState.Modified;
                await _db.SaveChangesAsync();

                return(RedirectToAction("Index", new { branchId = model.BranchId }));
            }
            return(View(model));
        }
Пример #15
0
        public object getUserInfo(GetUserId UserId)
        {
            try
            {
                object result      = "";
                var    getUserType = db.VW_GET_USER_TYPE.Where(r => r.UserId == UserId.UserId).FirstOrDefault();

                if (getUserType != null)
                {
                    if (getUserType.UserType == "STUDENT")
                    {
                        STUDENTINFO_BUSINESS GetStudobj = new STUDENTINFO_BUSINESS();
                        result = GetStudobj.getStudInfo(int.Parse(getUserType.EmpCode), UserId.UserId);
                    }
                    else if (getUserType.UserType == "Alumini")
                    {
                        return("ALUMINI USER");
                    }
                    else
                    {
                        GetTeacherInfoBusiness GetTeacherobj = new GetTeacherInfoBusiness();
                        result = GetTeacherobj.getTeacherInfo(int.Parse(getUserType.EmpCode), UserId.UserId);
                    }
                    return(result);
                }
                return(new Error()
                {
                    IsError = true, Message = "User Not Found"
                });
            }
            catch (Exception ex)
            {
                return(new Error()
                {
                    IsError = true, Message = ex.Message
                });
            }
        }
Пример #16
0
 void Start()
 {
     getuserId = GetComponent <GetUserId>();
 }
Пример #17
0
 public GetUserIdResponse Handle(GetUserId query)
 {
     return(new GetUserIdResponse(query.query()));
 }
        public object getUserInfo(GetUserId UserId)
        {
            try
            {
                SchoolMainContext db = new ConcreateContext().GetContext(UserId.UserId, UserId.PASSWORD);
                if (db == null)
                {
                    return(new Results()
                    {
                        IsSuccess = false, Message = "Invalid User"
                    });
                }
                object result      = "";
                var    getUserType = db.VW_GET_USER_TYPE.Where(r => r.UserId == UserId.UserId).FirstOrDefault();

                if (getUserType != null)
                {
                    if (getUserType.UserType == "STUDENT")
                    {
                        STUDENTINFO_BUSINESS GetStudobj = new STUDENTINFO_BUSINESS();
                        result = GetStudobj.getStudInfo(int.Parse(getUserType.EmpCode), UserId.UserId, UserId.PASSWORD);
                        var notificationUnreadCount = GetStudobj.getNotifCount(int.Parse(getUserType.EmpCode), Convert.ToInt16(UserId.UserId), UserId.PASSWORD);
                        if (result != null && result is VW_STUDENT_INFO)
                        {
                            (result as VW_STUDENT_INFO).HomeworkNotificationUnreadCount = (int)notificationUnreadCount;
                            InstituteBusiness Ibl = new InstituteBusiness();
                            var inresult          = Ibl.GetInstituteName(UserId);
                            if (inresult != null && inresult is ResultBirth)
                            {
                                var r = inresult as ResultBirth;
                                var n = r.Result as ViewGetInstituteName;
                                (result as VW_STUDENT_INFO).InstituteName = n.INSTITUTE_NAME;
                            }
                        }
                    }
                    else if (getUserType.UserType == "Alumini")
                    {
                        return(new Results
                        {
                            IsSuccess = true,
                            Message = "Alumini User"
                        });
                    }
                    else
                    {
                        GetTeacherInfoBusiness GetTeacherobj = new GetTeacherInfoBusiness();
                        result = GetTeacherobj.getTeacherInfo(int.Parse(getUserType.EmpCode), UserId.UserId, UserId.PASSWORD);
                        if (result != null && result is VW_EMPLOYEE)
                        {
                            InstituteBusiness Ibl = new InstituteBusiness();
                            var inresult          = Ibl.GetInstituteName(UserId);
                            if (inresult != null && inresult is ResultBirth)
                            {
                                var r = inresult as ResultBirth;
                                var n = r.Result as ViewGetInstituteName;
                                (result as VW_EMPLOYEE).InstituteName = n.INSTITUTE_NAME;
                            }
                        }
                    }
                    return(result);
                }

                return(new Results
                {
                    IsSuccess = false,
                    Message = "User Not Found"
                });
            }
            catch (Exception ex)
            {
                return(new Results
                {
                    IsSuccess = false,
                    Message = ex.Message
                });
            }
        }
Пример #19
0
        private string ddUrl = "";   //钉钉前端地址

        public void ProcessRequest(HttpContext context)
        {
            //判断客户端请求是否为post方法
            if (context.Request.HttpMethod.ToUpper() != "POST")
            {
                context.Response.Write("{\"errmsg\":\"请求方式不允许,请使用POST方式(DD0001)\",\"errcode\":1}");
                return;
            }

            try
            {
                string signUrl = ToolsClass.GetConfig("signUrl"); context.Response.ContentType = "text/plain";
                //数据库链接
                connectionString = ToolsClass.GetConfig("DataOnLine");
                //sqlServer
                da = new DbHelper.SqlHelper("SqlServer", connectionString);
                //获取请求json
                using (var reader = new StreamReader(context.Request.InputStream, Encoding.UTF8))
                {
                    CsJson = reader.ReadToEnd();
                }

                if (CsJson == "")
                {
                    context.Response.Write("{\"errmsg\":\"报文格式错误(DD0003)\",\"errcode\":1}");
                    return;
                }
                CsJson = Regex.Replace(CsJson, @"[\n\r]", "").Replace(@"\n", ",").Replace("'", "‘").Replace("\t", ":").Replace("\r", ",").Replace("\n", ",");
                //json转Hashtable
                ToolsClass.TxtLog("GetUser入参", "\r\nGetUser入参:" + CsJson);
                Object    jgobj      = ToolsClass.DeserializeObject(CsJson);
                Hashtable returnhash = jgobj as Hashtable;
                if (returnhash == null)
                {
                    context.Response.Write("{\"errmsg\":\"报文格式错误(DD0003)\",\"errcode\":1}");
                    return;
                }

                string path1 = context.Request.Path.Replace("GetUser.ashx", "getuser");
                string path2 = context.Request.Path.Replace("GetUser.ashx", "getdepart");
                //验证请求sign
                string sign1 = ToolsClass.md5(signUrl + path1 + "Romens1/DingDing2" + path1, 32);
                string sign2 = ToolsClass.md5(signUrl + path2 + "Romens1/DingDing2" + path2, 32);
                ToolsClass.TxtLog("生成的sign", "生成的" + "sign1:" + sign1 + "sign2:" + sign2 + "传入的sign" + returnhash["Sign"].ToString() + "\r\n 后台字符串:" + signUrl + path2 + "Romens1/DingDing2" + path2);
                if (sign1 != returnhash["Sign"].ToString() && sign2 != returnhash["Sign"].ToString())
                {
                    context.Response.Write("{\"errmsg\":\"认证信息Sign不存在或者不正确!\",\"errcode\":1}");
                    return;
                }

                selType = returnhash["TypeId"].ToString();
                if (returnhash.Contains("id"))
                {
                    selId = returnhash["id"].ToString();
                    if (selId == "")
                    {
                        context.Response.Write("{\"errmsg\":\"ID不允许为空(DD2001)\",\"errcode\":1}");
                        return;
                    }
                }

                //#微应用ID:agentId #企业ID:corpId #应用的唯一标识:appKey #应用的密钥:appSecret
                AppWyy    = ToolsClass.GetConfig("AppWyy");
                ScList    = AppWyy.Split('$');
                agentId   = ScList[0].ToString();
                corpId    = ScList[1].ToString();
                appKey    = ScList[2].ToString();
                appSecret = ScList[3].ToString();
                isWrite   = ToolsClass.GetConfig("isWrite");
                ddUrl     = ToolsClass.GetConfig("ddUrl");

                //获取access_token
                url    = "https://oapi.dingtalk.com/gettoken?appkey=" + appKey + "&appsecret=" + appSecret;
                FhJson = ToolsClass.ApiFun("GET", url, "");

                TokenClass tokenClass = new TokenClass();
                tokenClass   = (TokenClass)JsonConvert.DeserializeObject(FhJson, typeof(TokenClass));
                access_token = tokenClass.access_token;
                errcode      = tokenClass.errcode;
                if (errcode != 0)
                {
                    context.Response.Write("{\"errmsg\":\"获取ACCESS_TOKEN报错(DD0004)\",\"errcode\":1}");
                    return;
                }
                //取用户信息
                if (selType == "SelUser01")
                {
                    url    = "https://oapi.dingtalk.com/user/getuserinfo?access_token=" + access_token + "&code=" + selId;
                    FhJson = ToolsClass.ApiFun("GET", url, "");

                    //免登授权码 获取用户userid
                    GetUserId userClass = new GetUserId();
                    userClass = (GetUserId)JsonConvert.DeserializeObject(FhJson, typeof(GetUserId));
                    errcode   = userClass.errcode;
                    if (errcode != 0)
                    {
                        context.Response.Write("{\"errmsg\":\"" + userClass.errmsg + "\",\"errcode\":1}");
                        return;
                    }

                    //获取用户详情
                    url    = "https://oapi.dingtalk.com/user/get?access_token=" + access_token + "&userid=" + userClass.userid;
                    FhJson = ToolsClass.ApiFun("GET", url, "");
                    GetUserXq userXqClass = new GetUserXq();
                    userXqClass = (GetUserXq)JsonConvert.DeserializeObject(FhJson, typeof(GetUserXq));
                    errcode     = userXqClass.errcode;
                    if (errcode != 0)
                    {
                        context.Response.Write("{\"errmsg\":\"" + userClass.errmsg + "\",\"errcode\":1}");
                        return;
                    }

                    //查询用户信息
                    sql = "select Top 1 A.GUID OperatorGuid,A.EmployeeCode JobNumber,A.EmployeeName OperatorName,A.OrgCode,b.Name OrgName from FlowEmployee a left join ORGANIZATION b on a.OrgCode=b.Code where a.EmployeeCode='" + userXqClass.jobnumber + "'";
                    obj = da.GetDataTable(sql);
                    dt  = obj as DataTable;
                    if (dt.Rows.Count > 0)
                    {
                        FhJson = "{\"errmsg\":\"ok\",\"errcode\":0,\"userid\":\"" + userClass.userid + "\",\"OperatorGuid\":\"" + dt.Rows[0]["OperatorGuid"].ToString() +
                                 "\",\"OperatorName\":\"" + dt.Rows[0]["OperatorName"].ToString() +
                                 "\",\"Avatar\":\"" + userXqClass.avatar +
                                 "\",\"JobNumber\":\"" + dt.Rows[0]["JobNumber"].ToString() +
                                 "\",\"OrgCode\":\"" + dt.Rows[0]["OrgCode"].ToString() +
                                 "\",\"OrgName\":\"" + dt.Rows[0]["OrgName"].ToString() + "\"}";
                    }
                    else
                    {
                        FhJson = "{\"errmsg\":\"当前用户不存在\",\"errcode\":1}";
                    }
                }
                //获取用户详情
                else if (selType == "SelUser02")
                {
                    url    = "https://oapi.dingtalk.com/user/get?access_token=" + access_token + "&userid=" + selId;
                    FhJson = ToolsClass.ApiFun("GET", url, "");
                }
                //获取部门用户userid列表
                else if (selType == "SelUser03")
                {
                    url    = "https://oapi.dingtalk.com/user/getDeptMember?access_token=" + access_token + "&deptId=" + selId;
                    FhJson = ToolsClass.ApiFun("GET", url, "");
                }
                //获取部门用户列表
                else if (selType == "SelUser04")
                {
                    url    = "https://oapi.dingtalk.com/user/simplelist?access_token=" + access_token + "&department_id=" + selId;
                    FhJson = ToolsClass.ApiFun("GET", url, "");
                }
                //获取部门用户详情
                else if (selType == "SelUser05")
                {
                    url    = "https://oapi.dingtalk.com/user/listbypage?access_token=" + access_token + "&department_id=" + selId + "&offset=0&size=10";
                    FhJson = ToolsClass.ApiFun("GET", url, "");
                }
                //获取管理员列表
                else if (selType == "SelUser06")
                {
                    url    = "https://oapi.dingtalk.com/user/get_admin?access_token=" + access_token;
                    FhJson = ToolsClass.ApiFun("GET", url, "");
                }
                //获取管理员通讯录权限范围
                else if (selType == "SelUser07")
                {
                    url    = "https://oapi.dingtalk.com/topapi/user/get_admin_scope?access_token=" + access_token + "&userid=" + selId;
                    FhJson = ToolsClass.ApiFun("GET", url, "");
                }
                //获取子部门ID列表
                else if (selType == "SelDepart01")
                {
                    url    = "https://oapi.dingtalk.com/department/list_ids?access_token=" + access_token + "&id=" + selId;
                    FhJson = ToolsClass.ApiFun("GET", url, "");
                }
                //获取部门列表
                else if (selType == "SelDepart02")
                {
                    url    = "https://oapi.dingtalk.com/department/list?access_token=" + access_token + "&id=" + selId;
                    FhJson = ToolsClass.ApiFun("GET", url, "");
                }
                //获取部门详情
                else if (selType == "SelDepart03")
                {
                    url    = "https://oapi.dingtalk.com/department/get?access_token=" + access_token + "&id=" + selId;
                    FhJson = ToolsClass.ApiFun("GET", url, "");
                }
                //查询部门的所有上级父部门
                else if (selType == "SelDepart04")
                {
                    url    = "https://oapi.dingtalk.com/department/list_parent_depts_by_dept?access_token=" + access_token + "&id=" + selId;
                    FhJson = ToolsClass.ApiFun("GET", url, "");
                }
                //获取企业员工人数
                else if (selType == "SelDepart05")
                {
                    //onlyActive 0:包含未激活钉钉的人员数量 1:不包含未激活钉钉的人员数量
                    url    = "https://oapi.dingtalk.com/user/get_org_user_count?access_token=" + access_token + "&onlyActive=" + selId;
                    FhJson = ToolsClass.ApiFun("GET", url, "");
                }
                else
                {
                    context.Response.Write("{\"errmsg\":\"查询其他信息请关机(DD1003)\",\"errcode\":1}");
                    return;
                }
                ToolsClass.TxtLog("GetUser", "\r\n返给前端json:" + FhJson);
                context.Response.Write(FhJson);
                return;
            }
            catch (Exception ex)
            {
                context.Response.Write("{\"errmsg\":\"" + ex.Message + "\",\"errcode\":1}");
                return;
            }
        }
    void Start()
    {
        getuserId = GetComponent<GetUserId>();

    } 
        public async Task <IActionResult> BuyMembership(long clientId, long membershipId, long groupId, string firstDay)
        {
            Client client = _db.Clients.FirstOrDefault(p => p.Id == clientId);

            if (clientId != 0 && membershipId != 0 && groupId != 0 && firstDay != null)
            {
                Console.WriteLine(groupId);
                DateTime startDate = DateTime.Parse(firstDay).Date;
                Console.WriteLine(startDate);

                client.Paid          = Paid.Есть_долг;
                client.GroupId       = groupId;
                client.MembershipId  = membershipId;
                client.ClientType    = ClientType.AreEngaged;
                client.CreatorId     = GetUserId.GetCurrentUserId(this.HttpContext);
                client.HasMembership = true;
                Models.Group group = _db.Groups.FirstOrDefault(g => g.Id == groupId);
                if (group != null && group.Clients.Count == 0)
                {
                    group.Clients = new List <Client>()
                    {
                        client
                    }
                }
                ;
                else
                {
                    group?.Clients.Add(client);
                }

                Membership membership = _db.Memberships.FirstOrDefault(m => m.Id == membershipId);
                client.Balance = -membership.Price;
                DateTime endDate = _clientServices.EndDateForClientsMembership(
                    startDate,
                    group.Id,
                    membership.AttendanceDays);

                Console.WriteLine(endDate);

                ClientsMembership clientsMembership = new ClientsMembership()
                {
                    Client            = client,
                    MembershipId      = membership.Id,
                    DateOfPurchase    = DateTime.Now,
                    DateOfExpiry      = endDate,
                    FirstDateOfLesson = startDate
                };

                _db.Entry(clientsMembership).State = EntityState.Added;
                int daysFrozen = 0;
                if (membership.AttendanceDays == 12)
                {
                    daysFrozen = 3;
                }
                else if (membership.AttendanceDays == 8)
                {
                    daysFrozen = 2;
                }
                else
                {
                    daysFrozen = 0;
                }
                var datesOfAttendance = _clientServices.DatesForAttendance(
                    startDate, groupId,
                    membership.AttendanceDays + daysFrozen);
                AttendanceCount attendanceCount = new AttendanceCount()
                {
                    AttendingTimes = membership.AttendanceDays,
                    AbsenceTimes   = 0,
                    FrozenTimes    = daysFrozen
                };
                _db.Entry(attendanceCount).State = EntityState.Added;
                for (int i = 0; i < membership?.AttendanceDays; i++)
                {
                    Attendance attendance = new Attendance()
                    {
                        Client            = client,
                        MembershipId      = membership.Id,
                        Date              = datesOfAttendance[i],
                        AttendanceState   = AttendanceState.notcheked,
                        GroupId           = groupId,
                        AttendanceCount   = attendanceCount,
                        ClientsMembership = clientsMembership
                    };
                    _db.Entry(attendance).State = EntityState.Added;
                }

                _db.Entry(client).State = EntityState.Modified;
                _db.Entry(group).State  = EntityState.Modified;
                await _db.SaveChangesAsync();

                await Task.Delay(500);

                return(RedirectToAction("RegularClients", "Clients", new { branchId = client.Group.BranchId }));
            }
            else
            {
                Console.WriteLine("");
            }

            await Task.Delay(500);

            return(RedirectToAction("RegularClients", "Clients", new { branchId = client.Group.BranchId }));
        }