예제 #1
0
        public Result <UserViewModel> Login(LoginViewModel user)
        {
            try
            {
                var userResult = Get(u => u.Email.ToUpper() == user.Email.ToUpper());

                if (userResult == null)
                {
                    throw new Exception(EResultMessage.EmailOrPasswordWrong.ToString());
                }
                if (!userResult.IsConfirmed)
                {
                    throw new Exception(EResultMessage.UserNotConfirmed.ToString());
                }

                if (!Protected.Validate(user.Password, userResult.HashPassword))
                {
                    throw new Exception(EResultMessage.EmailOrPasswordWrong.ToString());
                }

                return(ResultHelper.Succeeded(_tokenManager.GenerateUserToken(userResult)));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <UserViewModel>(message: e.Message));
            }
        }
예제 #2
0
        public Result <bool> ChangePassword(int userId, UserPasswordViewModel password)
        {
            try
            {
                if (password.NewPassword != password.RepeatedNewPassword)
                {
                    throw new Exception(EResultMessage.InvalidData.ToString());
                }

                var user = Get(u => u.Id == userId);
                if (user == null)
                {
                    throw new Exception(EResultMessage.NotFound.ToString());
                }

                if (!Protected.Validate(password.OldPassword, user.HashPassword))
                {
                    throw new Exception(EResultMessage.WrongPassword.ToString());
                }

                user.HashPassword = Protected.CreatePasswordHash(password.NewPassword);
                Update(user);

                if (!SaveChanges())
                {
                    throw new Exception(EResultMessage.DatabaseError.ToString());
                }

                return(ResultHelper.Succeeded(true, message: EResultMessage.RegistrationDone.ToString()));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <bool>(message: e.Message));
            }
        }
예제 #3
0
        public PhasesBook(AppInterface appInterface, Size size) //, MouseTool mouseTool)
        {
            Variables           = new VariableCollection(this);
            Sheets              = new List <DrawingSheet>();
            Actions             = new List <RecordableAction>();
            Globals             = new List <IGlobal>();
            defaultNewSheetSize = size;
            activeSheet         = new GlobalSheet(this, "Main Sheet", defaultNewSheetSize, Constants.ImageIndex.MainSheet);
            controls            = appInterface;
            Protected           = new Protected();

            //controls.mouse.ClearSelection();
            controls.view.Nodes.Clear();
            AddSheet(activeSheet);
        }
예제 #4
0
 /// <summary>
 /// Returns a verbose indented string for debugging
 /// </summary>
 /// <returns>a debugging string</returns>
 public override string ToString()
 {
     return
         ("  ForegroundColor: " + ForegroundColor.ToString() + "\n" +
          "  ForegroundRgb: " + (ForegroundRgb == null ? "<null>" : ForegroundRgb.ToString()) + "\n" +
          "  BackgroundColor: " + BackgroundColor.ToString() + "\n" +
          "  BackgroundRgb: " + (BackgroundRgb == null ? "<null>" : BackgroundRgb.ToString()) + "\n" +
          "  Bright: " + Bright.ToString() + "\n" +
          "  Standout: " + Standout.ToString() + "\n" +
          "  Underscore: " + Underscore.ToString() + "\n" +
          "  Blink: " + Blink.ToString() + "\n" +
          "  Reverse: " + Reverse.ToString() + "\n" +
          "  Hidden: " + Hidden.ToString() + "\n" +
          "  Protected: " + Protected.ToString() + "\n"
         );
 }
예제 #5
0
        public override int GetHashCode()
        {
            unchecked
            {
                var hashCode = Name != null?Name.GetHashCode() : 0;

                hashCode = (hashCode * 397) ^ (int)Type;
                hashCode = (hashCode * 397) ^ (From != null ? From.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (int)Rel;
                hashCode = (hashCode * 397) ^ (int)Scope;
                hashCode = (hashCode * 397) ^ (Default != null ? Default.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ Nullable.GetHashCode();
                hashCode = (hashCode * 397) ^ Required.GetHashCode();
                hashCode = (hashCode * 397) ^ Disabled.GetHashCode();
                hashCode = (hashCode * 397) ^ Protected.GetHashCode();
                hashCode = (hashCode * 397) ^ Personal.GetHashCode();
                hashCode = (hashCode * 397) ^ (Annotations != null ? Annotations.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (Description != null ? Description.GetHashCode() : 0);
                return(hashCode);
            }
        }
예제 #6
0
        public async Task SendAsync(MailMessageViewModel message)
        {
            try
            {
                var client = new SmtpClient(SMTP_SERVER, SMTP_PORT)
                {
                    Credentials = new NetworkCredential(SMTP_USER, Protected.DecodeText(PASSWORD)),
                    EnableSsl   = true
                };

                await client.SendMailAsync(new MailMessage(message.From, message.To)
                {
                    IsBodyHtml = message.IsBodyHtml,
                    Body       = message.Body,
                    Subject    = message.Subject
                });
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public IActionResult Unprotectdata([FromBody] Protected model)
        {
            var configurationBuilder = new ConfigurationBuilder();
            var path = Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json");

            configurationBuilder.AddJsonFile(path, false);
            var root   = configurationBuilder.Build();
            var desKey = root.GetSection("KEY").GetSection("SECkey").Value;

            try
            {
                model.Password = EncryptProvider.DESDecrypt(model.Password, desKey);
                var    email  = model.Email;
                string output = email.Replace(" ", "+");
                model.Email = EncryptProvider.DESDecrypt(output, desKey.ToString());
                if (model.Action == 10) //reset Password from email
                {
                    model.Email = EncryptProvider.DESDecrypt(output, desKey);
                    return(Ok(model));
                }

                //model.Email = EncryptProvider.DESDecrypt(model.Email, desKey);
                //model.Password = EncryptProvider.DESDecrypt(model.Password, desKey);
                if (model.Action > 0 && model.Action != 5)
                {
                    model.AbsenceId = EncryptProvider.DESDecrypt(model.AbsenceId, desKey); //when action = 5 then there is no JobId
                }
                return(Ok(model));
            }
            catch (Exception ex)
            {
                return(BadRequest("Invalid"));
            }
            finally
            {
            }
        }
예제 #8
0
 /// <summary>
 /// Handling textbox link clicked event and raising the same event here.
 /// </summary>
 /// <param name="sender">object</param>
 /// <param name="e">EventArgs</param>
 private void T_Protected(object sender, EventArgs e)
 {
     Protected?.Invoke(sender, e);
 }
예제 #9
0
 public void Stuff(Protected p)
 {
 }
예제 #10
0
        public async Task <Guid?> PublishDraftTender(Guid tenderGuid)
        {
            // отримуємо всі звязані з тендером драфти з бази
            var draftTender = await Context.DraftTenders
                              .Include(t => t.ProcuringEntity)
                              .Include(t => t.ProcuringEntity.AllIdentifiers)
                              .Include(t => t.ProcuringEntity.ContactPoints)
                              .Include(t => t.ContactPointRefs)
                              .Include(t => t.Lots)
                              .Include(t => t.Items)
                              .Include(t => t.Items.Select(i => i.AdditionalClassifications))
                              .Include(t => t.Features)
                              .Include(t => t.Features.Select(f => f.Values))
                              .FirstOrDefaultAsync(t => t.Guid == tenderGuid);

            Protected <Rest.Tender> createdTenderInfo = null;

            // відправляємо запит в ЦБД
            using (var tendersService = new TendersService())
            {
                var newTender = draftTender.ToRest();
                switch (draftTender.ProcurementMethodType)
                {
                case ProcurementMethodType.ABOVE_THRESHOLD_UA_DEFENSE:
                case ProcurementMethodType.ABOVE_THRESHOLD_EU:
                    newTender.ProcuringEntity.ContactPoints = draftTender.ContactPointRefs.Select(c => new ContactPoint(c.ContactPoint));
                    break;

                case ProcurementMethodType.REPORTING:
                case ProcurementMethodType.NEGOTIATION:
                case ProcurementMethodType.NEGOTIATION_QUICK:
                    newTender.Features    = null;
                    newTender.MinimalStep = null;
                    newTender.Lots        = null;
                    goto default;

                default:
                    newTender.ProcuringEntity.ContactPoint.AvailableLanguage = null;
                    break;
                }
                createdTenderInfo = await tendersService.CreateTender(newTender);
            }

            // Якщо досі не вискочив вийняток - значить тендер успішно створений в ДБД
            // Відловимо всі наступні вийнятки - щоб клієнт зміг побачити, що тендер успішно створений
            try
            {
                CreatedTender createdTender = new CreatedTender
                {
                    Tender             = Context.UpdateTender(null, createdTenderInfo.Data),
                    Token              = createdTenderInfo.Token,
                    UserOrganizationId = draftTender.ProcuringEntityId
                };
                Context.CreatedTenders.Add(createdTender);
                Context.DraftTenders.Remove(draftTender);
                try
                {
                    await Context.SaveChangesAsync();
                }
                catch (UpdateException)
                {
                    // На випадок, ящо синхронізація пройшла швидше ніж додавання в базу при створенні
                    Trace.TraceError($"Draft tender {tenderGuid} must be deleted manually.");
                    using (StoreContext tempStore = new StoreContext())
                    {
                        Tender syncedTender =
                            tempStore.Tenders.FirstOrDefault(t => t.Guid == createdTenderInfo.Data.Guid);
                        if (syncedTender != null)
                        {
                            createdTender.Tender = syncedTender;
                            tempStore.CreatedTenders.Add(createdTender);
                            await tempStore.SaveChangesAsync();
                        }
                        else
                        {
                            throw;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Trace.TraceError(
                    $"New tender {createdTenderInfo.Data?.Guid} was created by organization {draftTender.ProcuringEntityId} with token {createdTenderInfo.Token}, but cannot be saved to store. Correct it manually. {ex}");
            }
            return(createdTenderInfo.Data?.Guid);
        }
예제 #11
0
파일: test-611.cs 프로젝트: nobled/mono
			public void Stuff (Protected p)
			{
			}
예제 #12
0
        /// <summary>
        /// What the Client sends to the server.
        /// </summary>
        public override void FromClient(PacketFromClient packet)
        {
            while (phase == Phases.Handshake)
            {
                Thread.Sleep(100);
            }
            //Wait for handshake to complete
            if (phase == Phases.FinalClose)
            {
                throw new SessionClosedException();
            }

            if (packet.PacketID == PassThrough.ID)
            {
                SendToBackend(packet);
                return;
            }

            //Fix players eid to what is known for the server
            if (packet is IEntity)
            {
                IEntity ie = (IEntity)packet;
                if (ie.EID == Player.EntityID)
                {
                    ie.EID = EID;
                    packet.SetPacketBuffer(null);
                }
            }

            WorldRegion region = CurrentRegion;

            switch (packet.PacketID)
            {
            case PlayerPosition.ID:
                if (AttachedEntity > 0)
                {
                    //Ignore relative movements
                }
                else
                {
                    var pp = ((PlayerPosition)packet);
                    if (pp.Position.Y > -900)
                    {
                        SetPosition(pp.Position, true);
                        OnGround = pp.OnGround != 0;
                    }
                }
                break;

            case PlayerPositionLookClient.ID:
                if (AttachedEntity > 0)
                {
                    //Ignore relative movements
                }
                else
                {
                    PlayerPositionLookClient pp = ((PlayerPositionLookClient)packet);
                    if (pp.Position.Y > -900)
                    {
                        SetPosition(pp.Position, true);
                        OnGround = pp.OnGround;
                    }
                }
                Pitch = ((PlayerPositionLookClient)packet).Pitch;
                Yaw   = ((PlayerPositionLookClient)packet).Yaw;
                break;

            case PlayerGround.ID:
                OnGround = ((PlayerGround)packet).OnGround;
                //Good but a few false positives

                /*
                 * if (Sprinting)//Hacked client: Invalid sprint
                 * {
                 *  Chatting.Parser.TellAdmin(Player.Name + Chat.Gray + " sprinting standing still");
                 * }*/
                break;

            case  EntityAction.ID:
                EntityAction ea = packet as EntityAction;
                switch (ea.Action)
                {
                case EntityAction.Actions.LeaveBed:
                    Sleeping = false;
                    break;

                case EntityAction.Actions.Crounch:
                    Crouched = true;
                    break;

                case EntityAction.Actions.Uncrounch:
                    Crouched = false;
                    break;

                case EntityAction.Actions.StartSprinting:
                    Sprinting = true;
                    break;

                case EntityAction.Actions.StopSprinting:
                    Sprinting = false;
                    break;
                }
                break;

            case UseEntity.ID:
                if (Mode == GameMode.Creative && (Player.Admin(Permissions.AnyAdmin) == false))
                {
                    return;     //Donors can't hurt while in creative mode
                }
                if (UseEntityFromClient((UseEntity)packet))
                {
                    return;
                }
                break;

            case HeldItemClient.ID:
                //Active item
                var hc = (HeldItemClient)packet;
                if (hc.SlotID >= 0 && hc.SlotID <= 8)
                {
                    ActiveInventoryIndex = hc.SlotID;
                }
                else
                {
                    Log.Write(
                        new InvalidOperationException("Invalid holding slot id: " + hc.SlotID),
                        this.Player
                        );
                }
                break;

            //Prevent non admins from getting items in creative
            case CreativeInventory.ID:
                if (Player.Admin(Permissions.CreativeBuild) == false)
                {
                    Player.SendToClient(new EntityStatus(Player.EntityID, EntityStatuses.EntityHurt));
                    Player.TellSystem(Chat.Yellow, "Creative Inventory Disabled");
                    return;
                }

                CreativeInventory ci = (CreativeInventory)packet;
                if (0 <= ci.Slot && ci.Slot <= Inventory.Length)
                {
                    Inventory[ci.Slot] = ci.Item;
                }
                break;

            //If block action is done from another region
            case PlayerBlockPlacement.ID:
                //AfkTime = DateTime.Now;

                //Non admins can't place block
                if (Mode == GameMode.Creative && (Player.Admin(Permissions.CreativeBuild) == false))
                {
                    Player.SendToClient(new EntityStatus(Player.EntityID, EntityStatuses.EntityHurt));
                    Player.TellSystem(Chat.Yellow, "Creative Build Disabled");
                    return;
                }

                PlayerBlockPlacement pb = (PlayerBlockPlacement)packet;
                if (pb.BlockPosition.IsNull() == false)
                {
                    CoordDouble pos = pb.BlockPosition.CloneDouble();
                    region = RegionCrossing.GetRegion(pos, Dimension, World.Regions);
                    //Remember the last position clicked so we can do better chest protection
                    LastClickRegion = region;     //this is obsolete since we moved to blocking open across regions
                }
                else
                {
                    if (pb.Item != null)
                    {
                        Charge = new ChargeState(pb.Item.ItemID);
                    }
                }

                if (FilterDirection(pb.BlockPosition))
                {
                    return;
                }

                if (region == null)
                {
                    if (Dimension == 0 && FilterLava(pb))
                    {
                        return;
                    }
                }
                if (Protected.ProtectBlockPlace(this, region, pb))
                {
                    return;
                }

                break;

            case PlayerDigging.ID:
                //AfkTime = DateTime.Now;
                PlayerDigging pd = (PlayerDigging)packet;
                if (pd.Status == PlayerDigging.StatusEnum.FinishedDigging || pd.Status == PlayerDigging.StatusEnum.StartedDigging)
                {
                    CoordDouble pos = pd.Position.CloneDouble();
                    region = RegionCrossing.GetRegion(pos, Dimension, World.Regions);
                }
                //Log breaking blocks to determine if they found the diamond
                if (pd.Status == PlayerDigging.StatusEnum.FinishedDigging)
                {
                    OreTracker.BrokeBlock = DateTime.Now;
                }

                if (pd.Status == PlayerDigging.StatusEnum.ShootArrow)
                {
                    Charge = null;
                }

                //Prevent non admin creative from digging
                if (Mode == GameMode.Creative && Player.Admin(Permissions.AnyAdmin) == false)
                {
                    return;
                }
                if (FilterDirection(pd.Position))
                {
                    return;
                }

                if (Protected.ProtectBlockBreak(this, region, pd))
                {
                    return;
                }
                break;

            case WindowClick.ID:
                var wc = packet as WindowClick;
                if (wc.WindowID == 0)
                {
                    //TODO: handle
                }
                //AfkTime = DateTime.Now;
                if (Protected.ProtectChestsClick(this, wc))
                {
                    return;
                }

                ///Workaround bug clicky items duplication
                if (wc.Item != null)
                {
                    if (wc.Item.Count > 64)
                    {
                        return;
                    }
                }
                break;

            case WindowCloseClient.ID:
                WindowClose((WindowCloseClient)packet);
                break;
            }

            if (region != null)
            {
                if (region.Type == SpawnRegion.Type)
                {
                    if (SpawnRegion.FilterClient(Player, packet))
                    {
                        return;
                    }
                }
                if (region.Type == SpawnTimeRegion.Type)
                {
                    if (SpawnTimeRegion.FilterClient(region, Player, packet))
                    {
                        return;
                    }
                }
            }

            SendToBackend(packet);
        }
예제 #13
0
        public async Task <Result <bool> > AddUser(RegisterationViewModel userViewModel)
        {
            try
            {
                var user = new UserEntity {
                    Name        = userViewModel.Name,
                    Email       = userViewModel.Email,
                    PhoneNumber = userViewModel.PhoneNumber,
                    Address     = userViewModel.Address,
                    Type        = userViewModel.Type,
                    Picture     = userViewModel.Picture,
                    Gender      = userViewModel.Gender,
                };

                // Check for Type
                if (!Enum.IsDefined(typeof(EUserType), userViewModel.Type))
                {
                    throw new Exception(EResultMessage.NotUserType.ToString());
                }

                // Add user Typr
                user.Type = userViewModel.Type;

                if (userViewModel.Password != userViewModel.RepeatPassword)
                {
                    throw new Exception(EResultMessage.PasswordNotMatched.ToString());
                }

                // Hash user password
                user.HashPassword = Protected.CreatePasswordHash(userViewModel.Password);

                // Add user
                var result = Add(user);

                if (result == null)
                {
                    throw new Exception(EResultMessage.DatabaseError.ToString());
                }

                SaveChanges();

                var token = _tokenManager.GenerateUserToken(result).Token;

                var confirmLink = string.Format("{0}/api/user/confirm-account", _requestAttributes.AppBaseUrl);

                string body = File.ReadAllText("wwwroot/html/registartion.html");
                body = body.Replace("{link-path}", confirmLink);
                body = body.Replace("{user-name}", user.Name);
                body = body.Replace("{user-id}", user.Id.ToString());
                body = body.Replace("{user-token}", token);


                await _mailProvider.SendAsync(new MailMessageViewModel
                {
                    From       = MailProvider.SMTP_USER,
                    To         = user.Email,
                    IsBodyHtml = true,
                    Body       = body,
                    Subject    = "Confirm your account on Got It"
                });

                return(ResultHelper.Succeeded(true, message: EResultMessage.RegistrationDone.ToString()));
            }
            catch (DuplicateDataException)
            {
                return(ResultHelper.Failed(data: false, message: EResultMessage.EmailExists.ToString()));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <bool>(message: e.Message));
            }
        }
 public object Get(Protected req)
 {
     return(new HttpResult(new ProtectedResponse()));
 }