private void SetErrorHeaders(UsrDataShell usrDatas)
 {
     if (usrDatas.Error != null)
     {
         Response.Headers.Add("error", usrDatas.Error);
     }
 }
        private UsrDataShell PrepareMultipartRequest()
        {
            UsrDataShell result    = new UsrDataShell();
            string       queryType = Request.QueryString.Value;

            if (queryType.StartsWith("?_put=") || queryType.StartsWith("?_post="))
            {
                string data = Request.Form.Where(x => x.Key == "JSON").Select(x => x.Value.ToString()).FirstOrDefault();
                if (data != null)
                {
                    switch (queryType.Replace("?_put=", "").Replace("?_post=", ""))
                    {
                    case ("skill"): {
                        try {
                            result.UsrData_   = JsonConvert.DeserializeObject <UsrSkill>(data);
                            result.EntityType = "skill";
                        }
                        catch (Exception ex)
                        {
                            _logger.LogError(ex, "Fail deserialize Skill");
                            result.Error = "Fail deserialize Skill";
                        }
                        break;
                    }

                    case ("main"): {
                        try {
                            result.UsrData_   = JsonConvert.DeserializeObject <UsrMain>(data);
                            result.EntityType = "main";
                        }
                        catch (Exception ex)
                        {
                            _logger.LogError(ex, "Fail deserialize Main info");
                            result.Error = "Fail deserialize Main info";
                        }
                        break;
                    }

                    default: {
                        result.Error = "Not found entity! Check query param";
                        break;
                    }
                    }
                }
                if (Request.Form.Files.Count > 0)
                {
                    result.File = Request.Form.Files[0];
                }
            }
            else
            {
                result.Error = "Wrong put/post query params";
            }
            return(result);
        }
        public async Task <IActionResult> Get()
        {
            UsrDataShell result = await _dbOperations.GetAsync(Request.QueryString.Value);

            if (result.Error == null)
            {
                return(Ok(result.UsrDatas));
            }
            SetErrorHeaders(result);
            return(BadRequest(result));
        }
        public async Task <IActionResult> Auth(UsrAdmin user)
        {
            UsrDataShell result = await _userAuthentication.AuthenticationAsync(user);

            if (result.Error == null)
            {
                return(Ok(result.UsrData_));
            }
            SetErrorHeaders(result);
            return(BadRequest());
        }
Ejemplo n.º 5
0
        public async Task <UsrDataShell> DelAsync(string queryParams, int id)
        {
            UsrDataShell result = new UsrDataShell();

            if (queryParams.StartsWith("?_del="))
            {
                try
                {
                    switch (queryParams.Replace("?_del=", ""))
                    {
                    case ("educations"): {;
                                          result = await DataChangeAsync <UsrEducation>(await _resumeContext.UsrEducations.Where(educations => educations.UsrEducationId == id).FirstOrDefaultAsync(), EntityState.Deleted);

                                          break; }

                    case ("experiences"): {
                        result = await DataChangeAsync <UsrExperience>(await _resumeContext.UsrExperiences.Where(experiences => experiences.UsrExperienceId == id).FirstOrDefaultAsync(), EntityState.Deleted);

                        break;
                    }

                    case ("skills"): {
                        _fileOperations.DeleteOldFile <UsrSkill>(
                            "X",
                            await SelectNoTrackingListAsync <UsrSkill>(),
                            id);
                        result = await DataChangeAsync <UsrSkill>(await _resumeContext.UsrSkills.Where(skills => skills.UsrSkillId == id).FirstOrDefaultAsync(), EntityState.Deleted);

                        break;
                    }

                    default: {
                        result.Error = "Not found entity! Check del query param"; break;
                    }
                    }
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex, "Fail get data of DB");
                    result.Error = "Fail get data of DB";
                }
            }
            else
            {
                result.Error = "Wrong del query params";
            }
            return(result);
        }
        public async Task <UsrDataShell> SendEmailAsync(UsrEmail usrEmail)
        {
            UsrDataShell result = new UsrDataShell();
            string       error  = EmailInitializing();

            if (error != null)
            {
                result.Error = error;
                return(result);
            }
            error = await EmailSendAsync(usrEmail);

            if (error != null)
            {
                result.Error = error;
            }
            return(result);
        }
        public async Task <IActionResult> EmailMessage(UsrEmail usrEmail)
        {
            var validateErrors = usrEmail.Validate();

            if (validateErrors == null)
            {
                UsrDataShell result = await _emailOperations.SendEmailAsync(usrEmail);

                if (result.Error == null)
                {
                    return(Ok());
                }
                SetErrorHeaders(result);
            }
            else
            {
                Response.Headers.Add("error", validateErrors);
            }
            return(BadRequest());
        }
Ejemplo n.º 8
0
        public async Task <UsrDataShell> AuthenticationAsync(UsrAdmin user)
        {
            UsrDataShell result       = new UsrDataShell();
            var          hashPassword = await _dbOperations.GetUserHashPasswordAsync(user.Login);

            if (hashPassword == null)
            {
                result.Error = "User not found";
                return(result);
            }
            if (hashPassword == "FAIL!")
            {
                result.Error = "Fail get data of DB";
                return(result);
            }
            if (GetHashString(user.Password) != hashPassword)
            {
                result.Error = "Password incorrect";
                return(result);
            }
            DateTime tokenDateOfDeath = DateTime.Now.AddHours(GetTokenLifetime());

            bool saveToken = await _dbOperations.SetTokenDateOfDeathAsync(user.Login, tokenDateOfDeath);

            if (!saveToken)
            {
                result.Error = "Fail set data of DB";
                return(result);
            }
            Token token = new Token(user.Login, tokenDateOfDeath.ToString(), user.Login + hashPassword);

            result.UsrData_ = new UsrAdmin()
            {
                TokenDateOfDeath = tokenDateOfDeath, Token = token.GetToken()
            };
            return(result);
        }
Ejemplo n.º 9
0
        public async Task <UsrDataShell> GetAsync(string queryParams)
        {
            UsrDataShell result = new UsrDataShell();

            if (queryParams.StartsWith("?_get="))
            {
                try
                {
                    switch (queryParams.Replace("?_get=", ""))
                    {
                    case ("main"): { result.UsrDatas = await _resumeContext.UsrMains.ToListAsync(); break; }

                    case ("contact"): { result.UsrDatas = await _resumeContext.UsrContacts.ToListAsync(); break; }

                    case ("about"): { result.UsrDatas = await _resumeContext.UsrAbouts.ToListAsync(); break; }

                    case ("educations"): { result.UsrDatas = await _resumeContext.UsrEducations.OrderBy(data => data.NumberInTurn).ToListAsync(); break; }

                    case ("experiences"): { result.UsrDatas = await _resumeContext.UsrExperiences.OrderBy(data => data.NumberInTurn).ToListAsync(); break; }

                    case ("skills"): { result.UsrDatas = await _resumeContext.UsrSkills.OrderBy(data => data.NumberInTurn).ToListAsync(); break; }

                    default: { result.Error = "Not found entity! Check get query param"; break; }
                    }
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex, "Fail get data of DB");
                    result.Error = "Fail get data of DB";
                }
            }
            else
            {
                result.Error = "Wrong get query params";
            }
            return(result);
        }
Ejemplo n.º 10
0
        public async Task <UsrDataShell> DataChangeAsync <TEntity>(TEntity usrData, EntityState entityState = EntityState.Modified) where TEntity : class
        {
            UsrDataShell result = new UsrDataShell();

            try{
                _resumeContext.Entry <TEntity>(usrData).State = entityState;
                int updated = await _resumeContext.SaveChangesAsync();

                if (updated == 1)
                {
                    return(result);
                }
                else
                {
                    result.Error = $"Fail {entityState.ToString()} data";
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Fail set data of DB");
                result.Error = "Fail set data of DB";
            }
            return(result);
        }
        public async Task <IActionResult> PostMultipart()
        {
            UsrDataShell preResult = PrepareMultipartRequest();
            UsrDataShell result    = new UsrDataShell();

            if (preResult.Error == null)
            {
                string pathForDB = await _fileOperations.SaveFile(preResult.File);

                if (pathForDB != "FAIL!")
                {
                    string validateErrors = "";
                    preResult.UsrData_.SavePathToImg(pathForDB);
                    switch (preResult.EntityType)
                    {
                    case ("skill"): {
                        validateErrors = (preResult.UsrData_ as UsrSkill).Validate();
                        if (validateErrors == null)
                        {
                            result = await _dbOperations.DataChangeAsync <UsrSkill>(preResult.UsrData_ as UsrSkill, EntityState.Added);
                        }
                        else
                        {
                            result.Error = validateErrors;
                        }
                        break;
                    }

                    case ("main"): {
                        validateErrors = (preResult.UsrData_ as UsrMain).Validate();
                        if (validateErrors == null)
                        {
                            result = await _dbOperations.DataChangeAsync <UsrMain>(preResult.UsrData_ as UsrMain, EntityState.Added);
                        }
                        else
                        {
                            result.Error = validateErrors;
                        }
                        break;
                    }

                    default: {
                        result.Error = "Not found entity! Check query param";
                        break;
                    }
                    }
                    if (result.Error == null)
                    {
                        return(Ok(preResult.UsrData_));
                    }
                    else
                    {
                        SetErrorHeaders(result);
                    }
                }
                else
                {
                    preResult.Error = pathForDB;
                }
            }
            SetErrorHeaders(preResult);
            return(BadRequest());
        }
        public async Task <IActionResult> PutMultipart()
        {
            UsrDataShell preResult = PrepareMultipartRequest();
            UsrDataShell result    = new UsrDataShell();

            if (preResult.Error == null)
            {
                string pathForDB = await _fileOperations.SaveFile(preResult.File);

                if (pathForDB != "FAIL!")
                {
                    string validateErrors = "";
                    preResult.UsrData_.SavePathToImg(pathForDB);
                    switch (preResult.EntityType)
                    {
                    case ("skill"): {
                        UsrSkill updateUsrSkill = (preResult.UsrData_ as UsrSkill);
                        validateErrors = updateUsrSkill?.Validate();
                        if (validateErrors == null)
                        {
                            _fileOperations.DeleteOldFile <UsrSkill>(
                                pathForDB,
                                await _dbOperations.SelectNoTrackingListAsync <UsrSkill>(),
                                updateUsrSkill.GetKey());
                            result = await _dbOperations.DataChangeAsync <UsrSkill>(updateUsrSkill);
                        }
                        else
                        {
                            result.Error = validateErrors;
                        }
                        break;
                    }

                    case ("main"): {
                        UsrMain updateUsrMain = (preResult.UsrData_ as UsrMain);
                        validateErrors = updateUsrMain?.Validate();
                        if (validateErrors == null)
                        {
                            _fileOperations.DeleteOldFile <UsrMain>(
                                pathForDB,
                                await _dbOperations.SelectNoTrackingListAsync <UsrMain>(),
                                updateUsrMain.GetKey());
                            result = await _dbOperations.DataChangeAsync <UsrMain>(updateUsrMain);
                        }
                        else
                        {
                            result.Error = validateErrors;
                        }
                        break;
                    }

                    default: {
                        result.Error = "Not found entity! Check query param";
                        break;
                    }
                    }
                    if (result.Error == null)
                    {
                        return(Ok(preResult.UsrData_));
                    }
                    else
                    {
                        SetErrorHeaders(result);
                    }
                }
                else
                {
                    preResult.Error = pathForDB;
                }
            }
            SetErrorHeaders(preResult);
            return(BadRequest());
        }