Пример #1
0
 public ReturnModel ChangeTitleBoard([FromBody] ChangeBoardsTitleModel model,string titleOrganization ,string accesToken)
 {
     var account = _readOnlyRepository.First<Account>(account1 => account1.Token == accesToken);
     ReturnModel remodel=new ReturnModel();
     if (account != null)
     {
         if (account.VerifyToken(account))
         {
             var board = _readOnlyRepository.GetById<Board>(model.Id);
             board.Title = model.NewTitle;
             if (board.Administrator.Token.Equals(account.Token))
             {
                 var boardUpdate = _writeOnlyRepository.Update(board);
                 var boardModel = _mappingEngine.Map<Board, AccountBoardsModel>(boardUpdate);
                 Activity activity = new Activity();
                 activity.Text = account.FirstName + " renombro el board a  "+ board.Title;
                 account.AddActivities(activity);
                 var accountUpdate = _writeOnlyRepository.Update(account);
                 return remodel.ConfigureModel("Successfull", "Se cambio el nombre del board correctamente", remodel);
             }
             return remodel.ConfigureModel("Error", "No es el administrador no puede cambiar el nombre", remodel);
         }
         return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
     }
     return remodel.ConfigureModel("Error", "No se pudo acceder a su cuenta", remodel);
 }
Пример #2
0
        public ReturnModel CreateLine([FromBody] LineModel model,long idBoard, string accesToken)
        {
            var account = _readOnlyRepository.First<Account>(account1 => account1.Token ==accesToken);

            ReturnModel remodel=new ReturnModel();

            if (account != null)
            {
                if (account.VerifyToken(account))
                {
                    Board board = _readOnlyRepository.GetById<Board>(idBoard);
                    Lines line=_mappingEngine.Map<LineModel, Lines>(model);
                    Lines lineCreated = _writeOnlyRepository.Create(line);
                    if (lineCreated != null)
                    {
                        board.AddLine(lineCreated);
                        var boardUpdate = _writeOnlyRepository.Update(board);
                        Activity activity = new Activity();
                        activity.Text = account.FirstName + " Creo una Line en "+board.Title;
                        account.AddActivities(activity);
                        var accountUpdate = _writeOnlyRepository.Update(account);
                        return remodel.ConfigureModel("Successfull", "Se creo exitosamente la line "+lineCreated.Title, remodel);
                    }
                    return remodel.ConfigureModel("Error", "No se pudo crear la line", remodel);
                }
                return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
            }
            return remodel.ConfigureModel("Error", "No se pudo acceder a su cuenta", remodel);
        }
Пример #3
0
 public ReturnModel GetOrganizations(string accessToken)
 {
     var account = _readOnlyRepository.First<Account>(account1 => account1.Token == accessToken);
     ReturnModel remodel = new ReturnModel();
     if (account != null)
     {
         if (account.VerifyToken(account))
         {
             ReturnOrganizationsModel organizationsmodel = _mappingEngine.Map<Account, ReturnOrganizationsModel>(account);
             ReturnOrganizationsModel organ = new ReturnOrganizationsModel();
             organ.Organizations = new List<Organization>();
             foreach (var or in organizationsmodel.Organizations)
             {
                 if (!or.IsArchived)
                 {
                     Organization o = new Organization();
                     o.Title = or.Title;
                     o.Id = or.Id;
                     organ.Organizations.Add(o);
                 }
             }
             return organ.ConfigureModel("Successfull", "", organ);
         }
         return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
     }
     return remodel.ConfigureModel("Error", "No se pudo acceder a su cuenta", remodel);
 }
Пример #4
0
        public ReturnModel CreateCard([FromBody] CardModel model,long idLine, string accesToken)
        {
            var account =
                _readOnlyRepository.First<Account>(
                    account1 => account1.Token == accesToken);

            ReturnModel remodel=new ReturnModel();
            if (account != null)
            {
                if (account.VerifyToken(account))
                {
                    Lanes line = _readOnlyRepository.GetById<Lanes>(idLine);
                    Cards card= _mappingEngine.Map<CardModel, Cards>(model);
                    Cards cardCreated = _writeOnlyRepository.Create(card);
                    if (cardCreated != null)
                    {
                        line.AddCard(cardCreated);
                        var lineUpdate = _writeOnlyRepository.Update(line);
                        Activity activity = new Activity();
                        activity.Text = account.FirstName + " Creo una card en " + line.Title;
                        account.AddActivities(activity);
                        var accountUpdate = _writeOnlyRepository.Update(account);
                        return remodel.ConfigureModel("Successfull", "Se creo correctamente la card "+cardCreated.Text, remodel);
                    }
                    return remodel.ConfigureModel("Error", "No se pudo crear la card", remodel);
                }
                return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
            }
            return remodel.ConfigureModel("Error", "No se pudo acceder a la cuenta", remodel);
        }
Пример #5
0
 public ReturnModel Activities( string accessToken)
 {
     var account = _readOnlyRepository.First<Account>(account1 => account1.Token == accessToken);
     ReturnModel remodel=new ReturnModel();
     if (account != null)
     {
         if (account.VerifyToken(account))
         {
             ReturnActivitiesModel activitiesmodel = _mappingEngine.Map<Account, ReturnActivitiesModel>(account);
             return activitiesmodel.ConfigureModel("Successfull", "", activitiesmodel);
         }
         return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
     }
     return remodel.ConfigureModel("Error", "No se pudo acceder a su cuenta", remodel);
 }
Пример #6
0
 public ReturnModel Archive([FromBody] OrganizationArchiveModel model, string accesToken)
 {
     var account =_readOnlyRepository.First<Account>(account1 => account1.Token == accesToken);
     ReturnModel remodel=new ReturnModel();
     if (account != null)
     {
         if (account.VerifyToken(account))
         {
             var organization = _readOnlyRepository.GetById<Organization>(model.Id);
             var archiveOrganization = _writeOnlyRepository.Archive(organization);
             ReturnOrganizationModel organizationmodel = new ReturnOrganizationModel();
             organizationmodel = _mappingEngine.Map<Organization, ReturnOrganizationModel>(archiveOrganization);
             return organizationmodel.ConfigureModel("Successfull", "Se elimino satisfactoriamente " + organization.Title, organizationmodel);
         }
         return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
     }
     return remodel.ConfigureModel("Error", "No se pudo acceder a su cuenta", remodel);
 }
Пример #7
0
 public ReturnModel AddMember([FromBody] AddMemberBoardModel model, string accesToken)
 {
     var account = _readOnlyRepository.First<Account>(account1 => account1.Token == accesToken);
     ReturnModel remodel=new ReturnModel();
     if (account.VerifyToken(account))
     {
         var memberToAdd = _readOnlyRepository.GetById<Account>(model.MemberId);
         var board = _readOnlyRepository.GetById<Board>(model.BoardId);
         board.AddMember(memberToAdd);
         var updateBoard = _writeOnlyRepository.Update(board);
         var boardModel = _mappingEngine.Map<Board, AccountBoardsModel>(updateBoard);
         Activity activity=new Activity();
         activity.Text = account.FirstName + " Agrego a " + memberToAdd.FirstName + " al board: " + board.Title;
         account.AddActivities(activity);
         return boardModel;
     }
     return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
 }
Пример #8
0
 public ReturnModel DeleteBoard([FromBody] CardArchiveModel model, string accesToken)
 {
     var account =_readOnlyRepository.First<Account>(account1 => account1.Token == accesToken);
     ReturnModel remodel=new ReturnModel();
     if (account != null)
     {
         if (account.VerifyToken(account))
         {
             var card = _readOnlyRepository.GetById<Cards>(model.Id);
             var archivedCard = _writeOnlyRepository.Archive(card);
             Activity activity = new Activity();
             activity.Text = account.FirstName + " elimino la card "+card.Text;
             account.AddActivities(activity);
             var accountUpdate = _writeOnlyRepository.Update(account);
             CardModel cardmodel= _mappingEngine.Map<Cards, CardModel>(archivedCard);
             return cardmodel.ConfigureModel("Successfull", "Se borro exitosamente la card "+card.Text, cardmodel);
         }
     }
     return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
 }
Пример #9
0
        public ReturnModel GetOrganizations(long boardId, string accessToken)
        {
            ReturnModel remodel = new ReturnModel();
            try
            {
                var account = _readOnlyRepository.First<Account>(account1 => account1.Token == accessToken);

                if (account != null)
                {
                    if (account.VerifyToken(account))
                    {
                        var board = _readOnlyRepository.GetById<Board>(boardId);
                        if (board != null)
                        {
                            ReturnLinesModel boardsModel = _mappingEngine.Map<Board, ReturnLinesModel>(board);
                            var lines = new ReturnLinesModel();
                            lines.Lines = new List<Lines>();
                            foreach (var or in boardsModel.Lines)
                            {
                                if (!or.IsArchived)
                                {
                                    var o = new Lines();
                                    o.Title = or.Title;
                                    o.Id = or.Id;
                                    lines.Lines.Add(o);
                                }
                            }
                            return lines.ConfigureModel("Successfull", "", lines);
                        }
                    }
                    return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
                }
                return remodel.ConfigureModel("Error", "No se pudo acceder a su cuenta", remodel);
            }
            catch (Exception e)
            {
                return remodel.ConfigureModel("Error", e.Message, remodel);
            }
        }
Пример #10
0
        public ReturnModel Login([FromBody] AccountLoginModel model)
        {
            var account =
                _readOnlyRepository.First<Account>(
                    account1 => account1.Email == model.Email && account1.Password == Encrypt(model.Password));

            ReturnModel remodel=new ReturnModel();
            if (account != null)
            {
                //account.TokenTime = BitConverter.GetBytes(DateTime.UtcNow.ToBinary());
                account.TokenTime = DateTime.Now;
                account.Token = Guid.NewGuid().ToString();
                //account.Token = Convert.ToBase64String(account.TokenTime.Concat(account.TokenKey).ToArray()).Replace("/", "A").Replace("+", "B"); //.Replace(@"/", "").Replace(@"+","")

                var tokenCreated = _writeOnlyRepository.Update(account);
                if (tokenCreated != null)
                    return new AuthenticationModel() { Token = account.Token };

            }
            return remodel.ConfigureModel("Error", "NO se pudo acceder a su cuenta", remodel);
        }
Пример #11
0
        public ReturnModel MoveCardToLane([FromBody] MoveCardModel model, string accessToken)
        {
            var account = _readOnlyRepository.First<Account>(account1 => account1.Token == accessToken);
            ReturnModel remodel=new ReturnModel();
            if (account != null)
            {
                if (account.VerifyToken(account))
                {
                    var card = _readOnlyRepository.GetById<Cards>(model.Id);
                    Cards card1 =new Cards();
                    card1.Text=card.Text;
                    card1.Description = card.Description;
                    var line = _readOnlyRepository.GetById<Lanes>(model.IdLineTo);

                    line.AddCard(card1);
                    var archivedCard = _writeOnlyRepository.Archive(card);
                    var updateLine = _writeOnlyRepository.Update(line);
                    Activity activity = new Activity();
                    activity.Text = account.FirstName + " Movio la card "+card.Text+" a la line: "+line.Title;
                    account.AddActivities(activity);
                    var accountUpdate = _writeOnlyRepository.Update(account);
                    return remodel.ConfigureModel("Successfull", "Se movio correctamente la card", remodel);
                }
                return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
            }
            return remodel.ConfigureModel("Error", "No se pudo acceder a su cuenta", remodel);
        }
Пример #12
0
        public ReturnModel Register([FromBody] OrganizationModel model,string accesToken)
        {
            var account =
                _readOnlyRepository.First<Account>(
                    account1 => account1.Token ==accesToken);
            ReturnModel remodel=new ReturnModel();
            if (account != null)
            {
                if (account.VerifyToken(account))
                {
                    Organization organization = _mappingEngine.Map<OrganizationModel, Organization>(model);
                    Organization organizationCreated = _writeOnlyRepository.Create(organization);
                    if (organizationCreated != null)
                    {
                        account.AddOrganization(organizationCreated);
                        Activity activity=new Activity();
                        activity.Text = account.FirstName + " Creo una organizacion";
                        account.AddActivities(activity);
                        var accountUpdate = _writeOnlyRepository.Update(account);

                        return remodel.ConfigureModel("SuccessFull", "Se Creo satisfactoriamente la organizacion "+organizationCreated.Title, remodel); ;
                    }
                }
                return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
            }
            return remodel.ConfigureModel("Error", "No se pudo acceder a su cuenta", remodel);
        }
Пример #13
0
 public ReturnModel CreateBoard([FromBody] AccountBoardsModel model,long idOrganization,string accesToken)
 {
     var account =_readOnlyRepository.First<Account>(account1 => account1.Token == accesToken);
     ReturnModel remodel=new ReturnModel();
     if (account != null)
     {
         if (account.VerifyToken(account))
         {
             Organization organization = _readOnlyRepository.GetById<Organization>(idOrganization);
             Board board = _mappingEngine.Map<AccountBoardsModel, Board>(model);
             board.Administrator = account;
             Board boardCreated = _writeOnlyRepository.Create(board);
             if (boardCreated != null)
             {
                 organization.AddBoard(boardCreated);
                 Activity activity = new Activity();
                 activity.Text = account.FirstName + " Creo un board";
                 account.AddActivities(activity);
                 var organizacionUpdate = _writeOnlyRepository.Update(organization);
                 var accountUpdate = _writeOnlyRepository.Update(account);
                 return remodel.ConfigureModel("Succesfull", "Se creo el board correctamente", remodel);
             }
             return remodel.ConfigureModel("Error", "No se pudo crear el board", remodel);
         }
         return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
     }
     return remodel.ConfigureModel("Error", "No se pudo acceder a su cuenta", remodel);
 }
Пример #14
0
        public ReturnModel GetOrganizations(long organizationId, string accessToken)
        {
            var account = _readOnlyRepository.First<Account>(account1 => account1.Token == accessToken);
            ReturnModel remodel = new ReturnModel();
            if (account != null)
            {
                if (account.VerifyToken(account))
                {
                    var organization = _readOnlyRepository.GetById<Organization>(organizationId);
                    if (organization != null)
                    {
                        ReturnBoardsModel boardsModel = _mappingEngine.Map<Organization, ReturnBoardsModel>(organization);
                        var boards = new ReturnBoardsModel();
                        boards.Boards = new List<Board>();
                        foreach (var or in boardsModel.Boards)
                        {
                            if (!or.IsArchived)
                            {
                                var o = new Board();
                                //o.Administrator = or.Administrator;
                                o.Title = or.Title;
                                o.Id = or.Id;
                                boards.Boards.Add(o);
                            }

                        }
                        return boards.ConfigureModel("Successfull", "", boards);
                    }
                }
                return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
            }
            return remodel.ConfigureModel("Error", "No se pudo acceder a su cuenta", remodel);
        }
Пример #15
0
 public ReturnModel UpdateData([FromBody] UpdateDataModel model, string accessToken)
 {
     var account = _readOnlyRepository.First<Account>(account1 => account1.Token == accessToken);
     ReturnModel remodel=new ReturnModel();
     if (account != null)
     {
         if (account.VerifyToken(account))
         {
             account.FirstName = model.FirstName;
             account.LastName = model.LastName;
             var Updateaccount = _writeOnlyRepository.Update(account);
             ReturnUpdateDataModel updatemodel = _mappingEngine.Map<Account, ReturnUpdateDataModel>(account);
             return updatemodel.ConfigureModel("Successfull", "Se actualizo correctamente su informacion", remodel);
         }
         return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
     }
     return remodel.ConfigureModel("Error", "No se pudo acceder a su cuenta", remodel);
 }
Пример #16
0
 public ReturnModel ResetPassword([FromBody]ResetPasswordModel model)
 {
     ReturnModel remodel = new ReturnModel();
     var account =_readOnlyRepository.First<Account>(account1 => account1.Email == model.Email);
     if (account != null)
     {
         account.Password = Guid.NewGuid().ToString();
         account.Password = Encrypt(account.Password);
         var tokenCreated = _writeOnlyRepository.Update(account);
         RestClient client = new RestClient();
         client.BaseUrl = "https://api.mailgun.net/v2";
         client.Authenticator = new HttpBasicAuthenticator("api", "key-806lkm3wtz3ehuo1nx9ggv3fbbc4n5q3");
         RestRequest request = new RestRequest();
         request.AddParameter("domain",
                              "app18703.mailgun.org", ParameterType.UrlSegment);
         request.Resource = "{domain}/messages";
         request.AddParameter("from", "MiniTrello <*****@*****.**>");
         request.AddParameter("to", account.Email);
         request.AddParameter("to", account.Email);
         request.AddParameter("subject", "ResetPassword");
         request.AddParameter("text", "Su nueva contraseña es " + account.Password + "!");
         request.Method = Method.POST;
         client.Execute(request);
         return remodel.ConfigureModel("Success","Se le envio un mensaje a su correo",remodel) ;
     }
     return remodel.ConfigureModel("Error", "No se pudo realizar la accion", remodel);
 }
Пример #17
0
        public ReturnModel Register([FromBody] AccountRegisterModel model)
        {
            ReturnModel remodel=new ReturnModel();
            if (model.Password != model.ConfirmPassword)
                return remodel.ConfigureModel("Error", "Las Claves no son iguales", remodel);

            if (model.Password.Length <= 6 || Regex.IsMatch(model.Password, @"^[a-zA-Z]+$"))
                return remodel.ConfigureModel("Error", "la clave debe ser mayor a 6 caracteres y debe contener almenos un numero", remodel);

            var accountExist =_readOnlyRepository.First<Account>(account1 => account1.Email == model.Email);
            if (accountExist == null)
            {
                Account account = _mappingEngine.Map<AccountRegisterModel, Account>(model);
                account.TokenTime = DateTime.Now;
                account.Password = Encrypt(account.Password);
                Account accountCreated = _writeOnlyRepository.Create(account);
                if (accountCreated != null)
                {
                    ReturnRegisterModel registermodel = _mappingEngine.Map<Account, ReturnRegisterModel>(account);
                    RestClient client = new RestClient();
                    client.BaseUrl = "https://api.mailgun.net/v2";
                    client.Authenticator =new HttpBasicAuthenticator("api","key-3v0eblygcsga9qlj7tnn34w0vk14q-k3");
                    RestRequest request = new RestRequest();
                    request.AddParameter("domain", "app6870.mailgun.org", ParameterType.UrlSegment);
                    request.Resource = "{domain}/messages";
                    request.AddParameter("from", "MiniTrello <*****@*****.**>");
                    request.AddParameter("to", model.Email);
                    request.AddParameter("to", model.Email);
                    request.AddParameter("subject", "Registrado");
                    request.AddParameter("text", "Bienvenido a MiniTrello "+model.FirstName+"!");
                    request.Method = Method.POST;
                    client.Execute(request);
                    return remodel.ConfigureModel("Successfull", "Se Registro Correctamente", registermodel);
                }
                return remodel.ConfigureModel("Error", "Error al Guardar el Usuario", remodel);
            }
            return remodel.ConfigureModel("Error", "Usuario ya existe", remodel);
        }
Пример #18
0
        public ReturnModel GetOrganizations(long lineId, string accessToken)
        {
            var account = _readOnlyRepository.First<Account>(account1 => account1.Token == accessToken);
            ReturnModel remodel = new ReturnModel();
            if (account != null)
            {
                if (account.VerifyToken(account))
                {
                    var line = _readOnlyRepository.GetById<Lanes>(lineId);
                    if (line != null)
                    {
                        ReturnCardsModel cardsModel = _mappingEngine.Map<Lanes, ReturnCardsModel>(line);
                        var cards = new ReturnCardsModel();
                        cards.Cards = new List<Cards>();
                        foreach (var or in cardsModel.Cards)
                        {
                            if (!or.IsArchived)
                            {
                                var o = new Cards();
                                o.Text = or.Text;
                                o.Id = or.Id;
                                cards.Cards.Add(o);
                            }

                        }
                        return cards.ConfigureModel("Successfull", "", cards);
                    }
                }
                return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
            }
            return remodel.ConfigureModel("Error", "No se pudo acceder a su cuenta", remodel);
        }
Пример #19
0
 public ReturnModel DeleteBoard([FromBody] BoardArchiveModel model,string accesToken)
 {
     var account = _readOnlyRepository.First<Account>(account1 => account1.Token == accesToken);
     ReturnModel remodel=new ReturnModel();
     if (account != null)
     {
         if (account.VerifyToken(account))
         {
             var board = _readOnlyRepository.GetById<Board>(model.Id);
             var archivedBoard = _writeOnlyRepository.Archive(board);
             Activity activity = new Activity();
             activity.Text = account.FirstName + " elimino el board: "+board.Title;
             account.AddActivities(activity);
             var accountUpdate = _writeOnlyRepository.Update(account);
             AccountBoardsModel boardmodel=_mappingEngine.Map<Board, AccountBoardsModel>(archivedBoard);
             return boardmodel.ConfigureModel("Successfull", "Se Borro el board correctamente", boardmodel);
         }
     }
     return remodel.ConfigureModel("Error", "Su session ya expiro", remodel);
 }