示例#1
0
        public FamilyDTO LoadByName(string name)
        {
            try
            {
                using (OpenNosContext context = DataAccessHelper.CreateContext())
                {
                    Family family = context.Family.AsNoTracking().FirstOrDefault(a => a.Name.Equals(name));
                    if (family != null)
                    {
                        FamilyDTO dto = new FamilyDTO();
                        if (Mapper.Mappers.FamilyMapper.ToFamilyDTO(family, dto))
                        {
                            return(dto);
                        }

                        return(null);
                    }
                }
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }
            return(null);
        }
        public async Task <ActionResult <FamilyDTO> > PutFamily(int familyId, FamilyDTO familyDTO)
        {
            try
            {
                var oldFamily = await _familyRepository.GetFamilyById(familyId);

                if (oldFamily == null)
                {
                    return(NotFound($"Family with ID: {familyId} could not be found."));
                }

                var newFamily = _mapper.Map(familyDTO, oldFamily);
                _familyRepository.Update(newFamily);
                if (await _familyRepository.Save())
                {
                    return(NoContent());
                }
            }
            catch (TimeoutException e)
            {
                return(this.StatusCode(StatusCodes.Status408RequestTimeout, $"Request timeout: {e.Message}"));
            }
            catch (Exception e)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, $"Database Failure: {e.Message}"));
            }

            return(BadRequest());
        }
示例#3
0
        public void Update(FamilyDTO familyDTO)
        {
            Family family = Mapper.Map <Family>(familyDTO);

            _unitOfWork.Families.Update(family);
            _unitOfWork.Save();
        }
示例#4
0
        public FamilyDTO LoadById(long familyId)
        {
            try
            {
                using (OpenNosContext context = DataAccessHelper.CreateContext())
                {
                    Family family = context.Family.FirstOrDefault(a => a.FamilyId.Equals(familyId));
                    if (family != null)
                    {
                        FamilyDTO dto = new FamilyDTO();
                        if (Mapper.Mapper.Instance.FamilyMapper.ToFamilyDTO(family, dto))
                        {
                            return(dto);
                        }

                        return(null);
                    }
                }
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }
            return(null);
        }
示例#5
0
        public SaveResult InsertOrUpdate(ref FamilyDTO family)
        {
            try
            {
                using (OpenNosContext context = DataAccessHelper.CreateContext())
                {
                    long   accountId = family.FamilyId;
                    Family entity    = context.Family.FirstOrDefault(c => c.FamilyId.Equals(accountId));

                    if (entity == null)
                    {
                        family = Insert(family, context);
                        return(SaveResult.Inserted);
                    }

                    family = Update(entity, family, context);
                    return(SaveResult.Updated);
                }
            }
            catch (Exception e)
            {
                Logger.Error(string.Format(Language.Instance.GetMessageFromKey("UPDATE_FAMILY_ERROR"), family.FamilyId, e.Message), e);
                return(SaveResult.Error);
            }
        }
示例#6
0
        public static bool ToFamily(FamilyDTO input, Family output)
        {
            if (input == null)
            {
                return(false);
            }

            output.FamilyFaction        = input.FamilyFaction;
            output.FamilyExperience     = input.FamilyExperience;
            output.FamilyHeadGender     = input.FamilyHeadGender;
            output.FamilyId             = input.FamilyId;
            output.FamilyLevel          = input.FamilyLevel;
            output.FamilyMessage        = input.FamilyMessage;
            output.LastFactionChange    = input.LastFactionChange;
            output.ManagerAuthorityType = input.ManagerAuthorityType;
            output.ManagerCanGetHistory = input.ManagerCanGetHistory;
            output.ManagerCanInvite     = input.ManagerCanInvite;
            output.ManagerCanNotice     = input.ManagerCanNotice;
            output.ManagerCanShout      = input.ManagerCanShout;
            output.MaxSize             = input.MaxSize;
            output.MemberAuthorityType = input.MemberAuthorityType;
            output.MemberCanGetHistory = input.MemberCanGetHistory;
            output.Name          = input.Name;
            output.WarehouseSize = input.WarehouseSize;
            output.TopFamily     = input.TopFamily;

            return(true);
        }
示例#7
0
 public void FamilyMessage(string packet)
 {
     SpinWait.SpinUntil(() => !ServerManager.Instance.inFamilyRefreshMode);
     if (Session.Character.Family != null && Session.Character.FamilyCharacter != null)
     {
         if (Session.Character.FamilyCharacter.Authority == FamilyAuthority.Assistant || Session.Character.FamilyCharacter.Authority == FamilyAuthority.Manager && Session.Character.Family.ManagerCanShout || Session.Character.FamilyCharacter.Authority == FamilyAuthority.Head)
         {
             string msg = string.Empty;
             int    i   = 0;
             foreach (string str in packet.Split(' '))
             {
                 if (i > 1)
                 {
                     msg += str + " ";
                 }
                 i++;
             }
             Session.Character.Family.FamilyMessage = msg;
             FamilyDTO fam = Session.Character.Family;
             DAOFactory.FamilyDAO.InsertOrUpdate(ref fam);
             ServerManager.Instance.FamilyRefresh(Session.Character.Family.FamilyId);
             int?sentChannelId2 = ServerCommunicationClient.Instance.HubProxy.Invoke <int?>("SendMessageToCharacter", ServerManager.Instance.ServerGroup, string.Empty, Session.Character.Family.FamilyId.ToString(), "fhis_stc", ServerManager.Instance.ChannelId, MessageType.Family).Result;
             if (!string.IsNullOrWhiteSpace(msg))
             {
                 int?sentChannelId = ServerCommunicationClient.Instance.HubProxy.Invoke <int?>("SendMessageToCharacter", ServerManager.Instance.ServerGroup, Session.Character.Family.FamilyId.ToString(), Session.Character.Name, UserInterfaceHelper.Instance.GenerateInfo("--- Family Message ---\n" + Session.Character.Family.FamilyMessage), ServerManager.Instance.ChannelId, MessageType.Family).Result;
             }
         }
     }
 }
示例#8
0
        public void ResetSex(string packet)
        {
            SpinWait.SpinUntil(() => !ServerManager.Instance.inFamilyRefreshMode);
            string[] packetsplit = packet.Split(' ');
            if (packetsplit.Length != 3)
            {
                return;
            }
            byte rank;

            if (Session.Character.Family != null && Session.Character.FamilyCharacter != null && Session.Character.FamilyCharacter.Authority == FamilyAuthority.Head && byte.TryParse(packetsplit[2], out rank))
            {
                foreach (FamilyCharacter familyCharacter in Session.Character.Family.FamilyCharacters)
                {
                    FamilyCharacterDTO familyCharacterDto = familyCharacter;
                    familyCharacterDto.Rank = 0;
                    DAOFactory.FamilyCharacterDAO.InsertOrUpdate(ref familyCharacterDto);
                }
                FamilyDTO fam = Session.Character.Family;
                fam.FamilyHeadGender = (GenderType)rank;
                DAOFactory.FamilyDAO.InsertOrUpdate(ref fam);
                ServerManager.Instance.FamilyRefresh(Session.Character.Family.FamilyId);
                int?sentChannelId2 = ServerCommunicationClient.Instance.HubProxy.Invoke <int?>("SendMessageToCharacter", ServerManager.Instance.ServerGroup, string.Empty, Session.Character.Family.FamilyId.ToString(), "fhis_stc", ServerManager.Instance.ChannelId, MessageType.Family).Result;
                Session.SendPacket(Session.Character.GenerateGInfo());
                Session.SendPacket(Session.Character.GenerateFamilyMember());
                Session.SendPacket(Session.Character.GenerateFamilyMemberMessage());

                int?sentChannelId = ServerCommunicationClient.Instance.HubProxy.Invoke <int?>("SendMessageToCharacter", ServerManager.Instance.ServerGroup, Session.Character.Name, fam.FamilyId.ToString(), UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("FAMILY_HEAD_CHANGE_GENDER")), 0), ServerManager.Instance.ChannelId, MessageType.Family).Result;
            }
        }
示例#9
0
        public FamilyDTO LoadByCharacterId(long characterId)
        {
            try
            {
                using (OpenNosContext context = DataAccessHelper.CreateContext())
                {
                    FamilyCharacter familyCharacter = context.FamilyCharacter.AsNoTracking().FirstOrDefault(fc => fc.Character.CharacterId.Equals(characterId));
                    if (familyCharacter != null)
                    {
                        Family family = context.Family.AsNoTracking().FirstOrDefault(a => a.FamilyId.Equals(familyCharacter.FamilyId));
                        if (family != null)
                        {
                            FamilyDTO dto = new FamilyDTO();
                            if (Mapper.Mappers.FamilyMapper.ToFamilyDTO(family, dto))
                            {
                                return(dto);
                            }

                            return(null);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }
            return(null);
        }
示例#10
0
        public void ResetSexe(string packet)
        {
            SpinWait.SpinUntil(() => !ServerManager.Instance.inFamilyRefreshMode);
            byte rank = 0;

            string[] packetsplit = packet.Split(' ');
            if (packetsplit.Length != 3)
            {
                return;
            }


            if (Session.Character.Family != null && Session.Character.FamilyCharacter != null && Session.Character.FamilyCharacter.Authority == FamilyAuthority.Head && byte.TryParse(packetsplit[2], out rank))
            {
                foreach (FamilyCharacterDTO fchar in Session.Character.Family.FamilyCharacters)
                {
                    FamilyCharacterDTO fchar2 = fchar;
                    fchar2.Rank = 0;
                    DAOFactory.FamilyCharacterDAO.InsertOrUpdate(ref fchar2);
                }
                FamilyDTO fam = Session.Character.Family;
                fam.FamilyHeadGender = (GenderType)rank;
                DAOFactory.FamilyDAO.InsertOrUpdate(ref fam);
                ServerManager.Instance.FamilyRefresh(Session.Character.Family.FamilyId);
                System.Reactive.Linq.Observable.Timer(TimeSpan.FromMilliseconds(100))
                .Subscribe(
                    o =>
                {
                    Session.SendPacket(Session.Character.GenerateGInfo());
                    Session.SendPacket(Session.Character.GenerateFamilyMember());
                    Session.SendPacket(Session.Character.GenerateFamilyMemberMessage());
                });
                int?sentChannelId = ServerCommunicationClient.Instance.HubProxy.Invoke <int?>("SendMessageToCharacter", Session.Character.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("FAMILY_HEAD_CHANGE_GENDER")), 0), ServerManager.Instance.ChannelId, MessageType.Family, fam.FamilyId.ToString(), null).Result;
            }
        }
示例#11
0
        public void ChangeAuthority(FauthPacket packet)
        {
            SpinWait.SpinUntil(() => !ServerManager.Instance.inFamilyRefreshMode);
            if (Session.Character.Family == null || Session.Character.FamilyCharacter.Authority != FamilyAuthority.Head)
            {
                return;
            }
            Session.Character.Family.InsertFamilyLog(FamilyLogType.RightChange, Session.Character.Name, "", "", "", 0, 0, 0, 0, 0, (byte)packet.MemberType, (int)packet.AuthorityId + 1, packet.Value);
            switch (packet.MemberType)
            {
            case FamilyAuthority.Manager:
                switch (packet.AuthorityId)
                {
                case 0:
                    Session.Character.Family.ManagerCanInvite = packet.Value == 1 ? true : false;
                    break;

                case 1:
                    Session.Character.Family.ManagerCanNotice = packet.Value == 1 ? true : false;
                    break;

                case 2:
                    Session.Character.Family.ManagerCanShout = packet.Value == 1 ? true : false;
                    break;

                case 3:
                    Session.Character.Family.ManagerCanGetHistory = packet.Value == 1 ? true : false;
                    break;

                case 4:
                    Session.Character.Family.ManagerAuthorityType = (FamilyAuthorityType)packet.Value;
                    break;
                }
                break;

            case FamilyAuthority.Member:
                switch (packet.AuthorityId)
                {
                case 0:
                    Session.Character.Family.MemberCanGetHistory = packet.Value == 1 ? true : false;
                    break;

                case 1:
                    Session.Character.Family.MemberAuthorityType = (FamilyAuthorityType)packet.Value;
                    break;
                }
                break;
            }
            FamilyDTO fam = Session.Character.Family;

            DAOFactory.FamilyDAO.InsertOrUpdate(ref fam);
            ServerManager.Instance.FamilyRefresh(Session.Character.Family.FamilyId);
            System.Reactive.Linq.Observable.Timer(TimeSpan.FromMilliseconds(100))
            .Subscribe(
                o =>
            {
                Session.SendPacket(Session.Character.GenerateGInfo());
            });
        }
示例#12
0
        /// <summary>
        /// fauth packet
        /// </summary>
        /// <param name="packet"></param>
        public void ChangeAuthority(FauthPacket packet)
        {
            SpinWait.SpinUntil(() => !ServerManager.Instance.inFamilyRefreshMode);
            if (Session.Character.Family == null || Session.Character.FamilyCharacter.Authority != FamilyAuthority.Head)
            {
                return;
            }
            Session.Character.Family.InsertFamilyLog(FamilyLogType.RightChanged, Session.Character.Name, right: (byte)packet.MemberType, righttype: packet.AuthorityId + 1, rightvalue: packet.Value);
            switch (packet.MemberType)
            {
            case FamilyAuthority.Manager:
                switch (packet.AuthorityId)
                {
                case 0:
                    Session.Character.Family.ManagerCanInvite = packet.Value == 1;
                    break;

                case 1:
                    Session.Character.Family.ManagerCanNotice = packet.Value == 1;
                    break;

                case 2:
                    Session.Character.Family.ManagerCanShout = packet.Value == 1;
                    break;

                case 3:
                    Session.Character.Family.ManagerCanGetHistory = packet.Value == 1;
                    break;

                case 4:
                    Session.Character.Family.ManagerAuthorityType = (FamilyAuthorityType)packet.Value;
                    break;
                }
                break;

            case FamilyAuthority.Member:
                switch (packet.AuthorityId)
                {
                case 0:
                    Session.Character.Family.MemberCanGetHistory = packet.Value == 1;
                    break;

                case 1:
                    Session.Character.Family.MemberAuthorityType = (FamilyAuthorityType)packet.Value;
                    break;
                }
                break;
            }
            FamilyDTO fam = Session.Character.Family;

            DAOFactory.FamilyDAO.InsertOrUpdate(ref fam);
            ServerManager.Instance.FamilyRefresh(Session.Character.Family.FamilyId);
            int?sentChannelId2 = ServerCommunicationClient.Instance.HubProxy.Invoke <int?>("SendMessageToCharacter", ServerManager.Instance.ServerGroup, string.Empty, Session.Character.Family.FamilyId.ToString(), "fhis_stc", ServerManager.Instance.ChannelId, MessageType.Family).Result;

            Session.SendPacket(Session.Character.GenerateGInfo());
        }
        /// <summary>
        /// Overload 2, adds HATEOAS links to supplied object.
        /// Hampus Kjellstrand
        /// </summary>
        /// <param name="family"></param>
        /// <returns></returns>
        internal FamilyDTO HateoasMainLinks(FamilyDTO family)
        {
            FamilyDTO familyDto = family;

            familyDto.Links.Add(UrlLink("all", "GetAllFamilies", null));
            familyDto.Links.Add(UrlLink("_self", "GetFamilyByIdAsync", new { id = familyDto.FamilyID }));
            familyDto.Links.Add(UrlLink("_self", "GetFamilyByName", new { name = familyDto.Name }));

            return(familyDto);
        }
示例#14
0
        public void CreateFamily(string packet)
        {
            SpinWait.SpinUntil(() => !ServerManager.Instance.inFamilyRefreshMode);

            if (Session.Character.Group != null && Session.Character.Group.CharacterCount == 3)
            {
                foreach (ClientSession s in Session.Character.Group.Characters)
                {
                    if (s.Character.Family != null || s.Character.FamilyCharacter != null)
                    {
                        return;
                    }
                }
                if (Session.Character.Gold < 200000)
                {
                    Session.SendPacket(UserInterfaceHelper.Instance.GenerateInfo(Language.Instance.GetMessageFromKey("NOT_ENOUGH_MONEY")));
                    return;
                }
                string name = packet.Split(' ')[2];
                if (DAOFactory.FamilyDAO.LoadByName(name) != null)
                {
                    Session.SendPacket(UserInterfaceHelper.Instance.GenerateInfo(Language.Instance.GetMessageFromKey("FAMILY_NAME_ALREADY_USED")));
                    return;
                }
                Session.Character.Gold -= 200000;
                Session.SendPacket(Session.Character.GenerateGold());
                FamilyDTO family = new FamilyDTO
                {
                    Name             = name,
                    FamilyExperience = 0,
                    FamilyLevel      = 1,
                    FamilyMessage    = string.Empty,
                    MaxSize          = 50
                };
                DAOFactory.FamilyDAO.InsertOrUpdate(ref family);

                ServerManager.Instance.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("FAMILY_FOUNDED"), name), 0));
                foreach (ClientSession c in Session.Character.Group.Characters)
                {
                    FamilyCharacterDTO familyCharacter = new FamilyCharacterDTO
                    {
                        CharacterId  = c.Character.CharacterId,
                        DailyMessage = string.Empty,
                        Experience   = 0,
                        Authority    = Session.Character.CharacterId == c.Character.CharacterId ? FamilyAuthority.Head : FamilyAuthority.Assistant,
                        FamilyId     = family.FamilyId,
                        Rank         = 0
                    };
                    DAOFactory.FamilyCharacterDAO.InsertOrUpdate(ref familyCharacter);
                }
                ServerManager.Instance.FamilyRefresh(family.FamilyId);
                int?sentChannelId2 = ServerCommunicationClient.Instance.HubProxy.Invoke <int?>("SendMessageToCharacter", ServerManager.Instance.ServerGroup, string.Empty, family.FamilyId.ToString(), "fhis_stc", ServerManager.Instance.ChannelId, MessageType.Family).Result;
                Session.Character.Group.Characters.ForEach(s => s.CurrentMapInstance.Broadcast(s.Character.GenerateGidx()));
            }
        }
        public async void PostFamilyTest()
        {
            // Arrange
            var     profile       = new MammalAPI.Configuration.Mapper();
            var     configuration = new MapperConfiguration(cfg => cfg.AddProfile(profile));
            IMapper mapper        = new Mapper(configuration);

            //Mock Repo
            var familyRepoMock = new Mock <IFamilyRepository>();

            familyRepoMock.Setup(r => r.Add <Family>(It.IsAny <Family>()));
            familyRepoMock.Setup(r => r.GetAllFamilies(It.IsAny <Boolean>())).Returns(Task.FromResult(new Family[1]));
            familyRepoMock.Setup(r => r.Save()).Returns(Task.FromResult(true));

            //Mock IActionDescriptorCollectionProvider
            var actions = new List <ActionDescriptor>
            {
                new ActionDescriptor
                {
                    AttributeRouteInfo = new AttributeRouteInfo()
                    {
                        Template = "/test",
                    },
                    RouteValues = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
                    {
                        { "action", "Test" },
                        { "controller", "Test" },
                    },
                },
            };
            var mockDescriptorProvider = new Mock <IActionDescriptorCollectionProvider>();

            mockDescriptorProvider.Setup(m => m.ActionDescriptors).Returns(new ActionDescriptorCollection(actions, 0));

            //Setup new controller based on mocks
            var controller = new FamilyController(familyRepoMock.Object, mapper, mockDescriptorProvider.Object);

            //Create new DTO
            var dto = new FamilyDTO
            {
                Name     = "test",
                FamilyID = 1
            };


            // Act
            var result = await controller.PostFamily(dto);

            // Assert
            var r         = result.Result as CreatedResult;
            var dtoResult = (FamilyDTO)r.Value;

            Assert.Equal("test", dtoResult.Name);
        }
示例#16
0
        public ActionResult Create([Bind(Include = "Name, Sex, DateBorn, Age, FormId")] FamilyVM familyVM)
        {
            if (ModelState.IsValid)
            {
                FamilyDTO familyDTO = Mapper.Map <FamilyDTO>(familyVM);
                //int questionId = QuestionService.AddAndGetId(questionDTO);
                FamilyService.Add(familyDTO);
                return(RedirectToAction("Index"));
            }
            ViewBag.FormId = GetFormIdSelectList(familyVM.FormId);

            return(View(familyVM));
        }
示例#17
0
        public async Task <ActualResult> UpdateAsync(FamilyDTO item)
        {
            try
            {
                _context.Entry(_mapperService.Mapper.Map <DAL.Entities.Family>(item)).State = EntityState.Modified;
                await _context.SaveChangesAsync();

                return(new ActualResult());
            }
            catch (Exception exception)
            {
                return(new ActualResult(DescriptionExceptionHelper.GetDescriptionError(exception)));
            }
        }
示例#18
0
 public IEnumerable <FamilyDTO> LoadAll()
 {
     using (OpenNosContext context = DataAccessHelper.CreateContext())
     {
         List <FamilyDTO> result = new List <FamilyDTO>();
         foreach (Family entity in context.Family.AsNoTracking())
         {
             FamilyDTO dto = new FamilyDTO();
             Mapper.Mappers.FamilyMapper.ToFamilyDTO(entity, dto);
             result.Add(dto);
         }
         return(result);
     }
 }
示例#19
0
        private static FamilyDTO Update(Family entity, FamilyDTO family, OpenNosContext context)
        {
            if (entity != null)
            {
                Mapper.Mappers.FamilyMapper.ToFamily(family, entity);
                context.SaveChanges();
            }
            if (Mapper.Mappers.FamilyMapper.ToFamilyDTO(entity, family))
            {
                return(family);
            }

            return(null);
        }
示例#20
0
        private static FamilyDTO Insert(FamilyDTO family, OpenNosContext context)
        {
            Family entity = new Family();

            Mapper.Mappers.FamilyMapper.ToFamily(family, entity);
            context.Family.Add(entity);
            context.SaveChanges();
            if (Mapper.Mappers.FamilyMapper.ToFamilyDTO(entity, family))
            {
                return(family);
            }

            return(null);
        }
        public async void GetFamilyByName_FetchFamilyBasedOnName_SameNameAsInputExpected(string inlineFamilyName, string expected)
        {
            // Arrange
            var     profile       = new MammalAPI.Configuration.Mapper();
            var     configuration = new MapperConfiguration(cfg => cfg.AddProfile(profile));
            IMapper mapper        = new Mapper(configuration);

            //Mock context
            var testFamilies = GetTestFamilies();
            var contextMock  = new Mock <DBContext>();

            contextMock.Setup(f => f.Families).ReturnsDbSet(testFamilies);

            //Mock Repo
            var logger         = Mock.Of <ILogger <FamilyRepository> >();
            var familyRepoMock = new FamilyRepository(contextMock.Object, logger);

            //Mock IActionDescriptorCollectionProvider
            var actions = new List <ActionDescriptor>
            {
                new ActionDescriptor
                {
                    AttributeRouteInfo = new AttributeRouteInfo()
                    {
                        Template = "/test",
                    },
                    RouteValues = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
                    {
                        { "action", "Test" },
                        { "controller", "Test" },
                    },
                }
            };
            var mockDescriptorProvider = new Mock <IActionDescriptorCollectionProvider>();

            mockDescriptorProvider.Setup(m => m.ActionDescriptors).Returns(new ActionDescriptorCollection(actions, 0));

            //Setup new controller based on mocks
            var controller = new FamilyController(familyRepoMock, mapper, mockDescriptorProvider.Object);

            //Act
            var result = await controller.GetFamilyByName(inlineFamilyName, false);

            var       contentResult = result as OkObjectResult;
            FamilyDTO dto           = (FamilyDTO)contentResult.Value;

            //Assert
            Assert.Equal(expected, dto.Name);
        }
示例#22
0
        public async Task <ActualResult> CreateAsync(FamilyDTO item)
        {
            try
            {
                await _context.Family.AddAsync(_mapperService.Mapper.Map <DAL.Entities.Family>(item));

                await _context.SaveChangesAsync();

                return(new ActualResult());
            }
            catch (Exception exception)
            {
                return(new ActualResult(DescriptionExceptionHelper.GetDescriptionError(exception)));
            }
        }
示例#23
0
        public Task <FamilyDTO> GetFamilyAsync(CancellationTokenSource cancellationTokenSource) =>
        Task <FamilyDTO> .Run(async() => {
            if (!CrossConnectivity.Current.IsConnected)
            {
                throw new InvalidOperationException(AppConsts.ERROR_INTERNET_CONNECTION);
            }

            FamilyDTO familyDTO = null;

            GetFamilyRequest getFamilyRequest = new GetFamilyRequest()
            {
                AccessToken = GlobalSettings.Instance.UserProfile.AccesToken,
                Url         = GlobalSettings.Instance.Endpoints.FamilyEndpoints.GetFamilyEndpoint
            };

            try {
                GetFamilyResponse getFamilyResponse = await _requestProvider.GetAsync <GetFamilyRequest, GetFamilyResponse>(getFamilyRequest);

                if (getFamilyResponse != null)
                {
                    familyDTO = new FamilyDTO()
                    {
                        Id       = getFamilyResponse.Id,
                        Members  = getFamilyResponse.Members,
                        ParentId = getFamilyResponse.ParentId
                    };
                }
            } catch (HttpRequestExceptionEx exc) {
                GetFamilyResponse erroredGetFamilyResponse = JsonConvert.DeserializeObject <GetFamilyResponse>(exc.Message);

                string output = string.Format("{0}",
                                              erroredGetFamilyResponse.Errors?.FirstOrDefault());

                output = (string.IsNullOrWhiteSpace(output) || string.IsNullOrEmpty(output)) ? GET_FAMILY_COMMON_ERROR : output;

                throw new InvalidOperationException(output.Trim());
            } catch (ServiceAuthenticationException exc) {
                _identityUtilService.RefreshToken();

                throw exc;
            } catch (Exception exc) {
                Crashes.TrackError(exc);

                throw exc;
            }

            return(familyDTO);
        });
示例#24
0
        public PostPublicityScope BuildFamilyPublicityScope(FamilyDTO familyDTO)
        {
            PostPublicityScope postPublicityScope = null;

            if (familyDTO != null)
            {
                postPublicityScope = new PostPublicityScope()
                {
                    Id         = familyDTO.Id,
                    Title      = FAMILY_SCOPE_TITLE,
                    PolicyType = PostPolicyType.Family
                };
            }

            return(postPublicityScope);
        }
示例#25
0
        public ActionResult Edit([Bind(Include = "Id, Name, Sex, DateBorn, Age, FormId")] FamilyVM familyVM)
        {
            if (ModelState.IsValid)
            {
                FamilyDTO familyDTO = Mapper.Map <FamilyDTO>(familyVM);
                FamilyService.Update(familyDTO);
                return(RedirectToAction("Index"));
            }
            else
            {
                ModelState.AddModelError(null, "Что-то пошло не так. Не удалось сохранить изменения.");
            }

            ViewBag.FormId = GetFormIdSelectList(familyVM.FormId);

            return(View(familyVM));
        }
示例#26
0
        public ActionResult Details(int?id)
        {
            try
            {
                FamilyDTO familyDTO = FamilyService.Get(id);
                FamilyVM  familyVM  = Mapper.Map <FamilyVM>(familyDTO);

                return(View(familyVM));
            }
            catch (ArgumentException)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            catch (NotFoundException)
            {
                return(HttpNotFound());
            }
        }
        public async Task <ActualResult <string> > CreateAsync(FamilyDTO item)
        {
            try
            {
                var family = _mapper.Map <DAL.Entities.Family>(item);
                await _context.Family.AddAsync(family);

                await _context.SaveChangesAsync();

                var hashId = HashHelper.EncryptLong(family.Id);
                return(new ActualResult <string> {
                    Result = hashId
                });
            }
            catch (Exception exception)
            {
                return(new ActualResult <string>(DescriptionExceptionHelper.GetDescriptionError(exception)));
            }
        }
        public async Task <ActionResult <FamilyDTO> > PostFamily(FamilyDTO familyDTO)
        {
            try
            {
                var mappedEntity = _mapper.Map <Family>(familyDTO);
                _familyRepository.Add(mappedEntity);
                if (await _familyRepository.Save())
                {
                    return(Created($"/api/v1.0/family/id{familyDTO.FamilyID}", _mapper.Map <FamilyDTO>(mappedEntity)));
                }
            }

            catch (Exception e)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, $"database failure {e.Message}"));
            }

            return(BadRequest());
        }
示例#29
0
 public void FamilyMessage(string packet)
 {
     SpinWait.SpinUntil(() => !ServerManager.Instance.InFamilyRefreshMode);
     if (Session.Character.Family != null && Session.Character.FamilyCharacter != null)
     {
         if (Session.Character.FamilyCharacter.Authority == FamilyAuthority.Assistant || Session.Character.FamilyCharacter.Authority == FamilyAuthority.Manager && Session.Character.Family.ManagerCanShout || Session.Character.FamilyCharacter.Authority == FamilyAuthority.Head)
         {
             string msg = string.Empty;
             int    i   = 0;
             foreach (string str in packet.Split(' '))
             {
                 if (i > 1)
                 {
                     msg += str + " ";
                 }
                 i++;
             }
             Session.Character.Family.FamilyMessage = msg;
             FamilyDTO fam = Session.Character.Family;
             DAOFactory.FamilyDAO.InsertOrUpdate(ref fam);
             ServerManager.Instance.FamilyRefresh(Session.Character.Family.FamilyId);
             CommunicationServiceClient.Instance.SendMessageToCharacter(new SCSCharacterMessage()
             {
                 DestinationCharacterId = Session.Character.Family.FamilyId,
                 SourceCharacterId      = Session.Character.CharacterId,
                 SourceWorldId          = ServerManager.Instance.WorldId,
                 Message = "fhis_stc",
                 Type    = MessageType.Family
             });
             if (!string.IsNullOrWhiteSpace(msg))
             {
                 CommunicationServiceClient.Instance.SendMessageToCharacter(new SCSCharacterMessage()
                 {
                     DestinationCharacterId = Session.Character.Family.FamilyId,
                     SourceCharacterId      = Session.Character.CharacterId,
                     SourceWorldId          = ServerManager.Instance.WorldId,
                     Message = UserInterfaceHelper.Instance.GenerateInfo("--- Family Message ---\n" + Session.Character.Family.FamilyMessage),
                     Type    = MessageType.Family
                 });
             }
         }
     }
 }
示例#30
0
        public ActionResult Edit(int?id)
        {
            try
            {
                FamilyDTO familyDTO = FamilyService.Get(id);
                FamilyVM  familyVM  = Mapper.Map <FamilyVM>(familyDTO);

                ViewBag.FormId = GetFormIdSelectList(familyVM.FormId);

                return(View(familyVM));
            }
            catch (ArgumentNullException)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            catch (NotFoundException)
            {
                return(HttpNotFound());
            }
        }