public void ValidateType_InvalidAccountAndType_FalseReturned()
        {
            // Arrange
            var user = TestHelper.PaDev1;

            MoveInLogicMock.
            Setup(x => x.ValidateIdType(It.IsAny <IdentifierRequest>())).
            Returns(Task.FromResult(false));
            var controller = GetController();
            var identifier = new IdentifierRequest
            {
                BpId           = user.BpNumber.ToString(),
                IdentifierType = IdentifierType.ZLAST4,
                IdentifierNo   = "1234"
            };

            // Act
            var response = controller.ValidateIdType(identifier);

            // Assert
            response.Result.ShouldBeOfType(typeof(OkObjectResult));
            var result = (ValidateIdTypeResponse)((OkObjectResult)response.Result).Value;

            result.ShouldNotBeNull();
            result.PiiMatch.ShouldBeFalse();
        }
Beispiel #2
0
        /// <inheritdoc />
        public Task <CreateBpIdTypeResponse> CreateIdType(IdentifierRequest identifierRequest)
        {
            var bpIdentifier = new BpIdentifier(identifierRequest);
            var response     = new CreateBpIdTypeResponse();

            var mcfResponse = _mcfClient.CreateIdentifier(bpIdentifier);

            if (mcfResponse == null)
            {
                const string uiFailureMessage = "Failed to create business partner identifier";
                _logger.LogError($"{ uiFailureMessage }: {identifierRequest.ToJson()}");
                throw new InternalServerException(uiFailureMessage);
            }

            response.HttpStatusCode = mcfResponse.HttpStatusCode;
            if (mcfResponse.Error != null)
            {
                const string uiFailureMessage = "Failed to create business partner identifier";
                _logger.LogError($"{ mcfResponse.Error.ToJson() }: {identifierRequest.ToJson()}");
                response.ErrorMessage = uiFailureMessage;
            }
            else
            {
                response.BpIdType = mcfResponse.Result.ToModel();
            }

            return(Task.FromResult(response));
        }
Beispiel #3
0
        private List <DbObjectTableSource> GetPosibleTables(string tableAlias)
        {
            List <DbObjectTableSource> ret = new List <DbObjectTableSource>();

            if (string.IsNullOrEmpty(tableAlias))
            {
                //it could be any of available tables in context
                foreach (IList <DbObjectTableSource> list in mTablesContext)
                {
                    if (list == null)
                    {
                        continue;
                    }

                    foreach (DbObjectTableSource ts in list)
                    {
                        ret.Add(ts);
                    }
                }
            }
            else
            {
                //find the nearest same table alias
                foreach (IList <DbObjectTableSource> list in mTablesContext)
                {
                    if (list == null)
                    {
                        continue;
                    }

                    foreach (DbObjectTableSource ts in list)
                    {
                        bool found = (ts.Alias != null && ts.Alias.Name.ToLower() == tableAlias.ToLower());
                        if (found == false)
                        {
                            string fullName = IdentifierRequest.GetSimpleFullName(ts.DbObject);
                            if (tableAlias.ToLower() == fullName.ToLower())
                            {
                                found = true;
                            }
                            else
                            {
                                if (ts.DbObject.Identifiers.Count > 1 && ts.DbObject.Identifiers[ts.DbObject.Identifiers.Count - 1].Name.ToLower() == tableAlias.ToLower())
                                {
                                    found = true;
                                }
                            }
                        }

                        if (found == true)
                        {
                            ret.Add(ts);
                            return(ret);
                        }
                    }
                }
            }

            return(ret);
        }
Beispiel #4
0
        private void FixDbObject(IdentifierRequest ir, string fullName, ObjectType objType)
        {
            string[] names = fullName.Split('.');

            foreach (DbObject dbObj in ir.mObjects)
            {
                if (dbObj != null)
                {
                    int i   = 0;
                    int idx = dbObj.Identifiers.Count - 1;

                    //table name (could be changed too
                    foreach (string newName in names.Reverse())
                    {
                        if (dbObj.Identifiers[idx].Name != newName && dbObj.Identifiers[idx].Name.Equals(newName, StringComparison.CurrentCultureIgnoreCase))
                        {
                            if (i == 0)
                            {
                                if (objType == ObjectType.COLUMN)
                                {
                                    //column name
                                    AddNote(dbObj, Note.CASEFIXER, String.Format(ResStr.CF_COLUMN_NAME_FIXED, dbObj.Identifiers[idx].Name, newName));
                                }
                                else
                                {
                                    //index & constraint name
                                    AddNote(dbObj, Note.CASEFIXER, String.Format(ResStr.CF_OBJECT_NAME_FIXED, ObjectTypeName[(int)objType], dbObj.Identifiers[idx].Name, newName));
                                }
                            }

                            if (i == 1)
                            {
                                //table name
                                AddNote(dbObj, Note.CASEFIXER, String.Format(ResStr.CF_OBJECT_NAME_FIXED, ObjectTypeName[(int)ObjectType.TABLE], dbObj.Identifiers[idx].Name, newName));
                            }

                            dbObj.Identifiers[idx].Name = newName;
                        }

                        if (dbObj.Identifiers[idx].Name == newName && newName != newName.ToUpper())
                        {
                            //we have to quote the name
                            dbObj.Identifiers[idx].Type = IdentifierType.Quoted;
                        }

                        ++i;
                        --idx;

                        if (idx < 0)
                        {
                            break;
                        }
                    }
                }
            }
        }
        public void UpdateIdType_ValidAccountAndType_SavedSuccessfully()
        {
            // Arrange
            var controller = GetController();
            var identifier = new IdentifierRequest();

            // Act
            var response = controller.UpdateIdType(identifier);

            // Assert
            response.ShouldBeOfType <OkObjectResult>();
        }
        public GetProductListByIdentifierMessage(GetProductListByIdentifierRequest MyRequest)
        {
            _Environment = MyRequest._EnvironmentSelected;
            GetService(MyRequest);
            _IdentifierRequest = new IdentifierRequest();
            _IdentifierRequest.IdentifierType = IdentifierTypeEnum.EAN;
            _IdentifierRequest.ValueList      = MyRequest._Parameters["EAN"].Split(';');
            _ProductListByIdentifierMessage2  = _MarketplaceAPIService.GetProductListByIdentifierAsync(MyRequest._HeaderMessage, _IdentifierRequest);
            XmlSerializer xmlSerializer = new XmlSerializer(_ProductListByIdentifierMessage2.Result.GetType());

            _RequestXML = _RequestInterceptor.LastRequestXML;
            _MessageXML = _RequestInterceptor.LastResponseXML;
        }
        public async Task <GetProductListByIdentifierMessage> GetMessage(GetProductListByIdentifierRequest MyRequest, IWebHostEnvironment env)
        {
            try
            {
                _env = env;
                if (string.IsNullOrWhiteSpace(_env.WebRootPath))
                {
                    _env.WebRootPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot");
                }
                _Environment = MyRequest._EnvironmentSelected;
                GetService(MyRequest);
                _IdentifierRequest = new IdentifierRequest();
                _IdentifierRequest.IdentifierType = IdentifierTypeEnum.EAN;
                _IdentifierRequest.ValueList      = MyRequest._Parameters["EAN"].Split(';');
                _ProductListByIdentifierMessage   = await _MarketplaceAPIService.GetProductListByIdentifierAsync(MyRequest._HeaderMessage, _IdentifierRequest);

                if (_ProductListByIdentifierMessage != null)
                {
                    _ProductListByIdentifierMessage.TokenId = MyRequest._HeaderMessage.Security.TokenId.Substring(0, 10);
                    CreateProductListReport();
                }
                _RequestXML = _RequestInterceptor.LastRequestXML;
                _MessageXML = _RequestInterceptor.LastResponseXML;
            }
            catch (System.AggregateException aggex)
            {
                if (_ProductListByIdentifierMessage.ErrorMessage != null)
                {
                    _InnerErrorMessage = _ProductListByIdentifierMessage.ErrorMessage;
                }
                _OperationSuccess = false;
                _ErrorMessage     = aggex.Message;
                _ErrorType        = aggex.HelpLink;
                _RequestXML       = _RequestInterceptor.LastRequestXML;
                _MessageXML       = _RequestInterceptor.LastResponseXML;
            }
            catch (System.Exception ex)
            {
                /*       if (_OrderListMessage.Exception.InnerException != null)
                 *          _InnerErrorMessage = _OrderListMessage.Exception.InnerException.Message;*/
                _OperationSuccess = false;
                _ErrorMessage     = ex.Message;
                _ErrorType        = ex.HelpLink;
                _RequestXML       = _RequestInterceptor.LastRequestXML;
                _MessageXML       = _RequestInterceptor.LastResponseXML;
            }
            return(this);
        }
Beispiel #8
0
        /// <inheritdoc />
        public Task <StatusCodeResponse> UpdateIdType(IdentifierRequest identifierRequest)
        {
            var bpIdentifier = new BpIdentifier(identifierRequest);

            var response = _mcfClient.UpdateIdentifier(bpIdentifier);

            if (response == null || response.Error != null)
            {
                const string uiFailureMessage     = "Failed to update business partner identifier";
                var          responseErrorMessage = response?.Error != null?response.Error.ToJson() : uiFailureMessage;

                _logger.LogError($"{ responseErrorMessage }: {identifierRequest.ToJson()}");
                throw new InternalServerException(uiFailureMessage);
            }

            return(Task.FromResult(response.ToModel()));
        }
Beispiel #9
0
        private List <IdentifierRequest> CreateUniqueRequestsList(List <KeyValuePair <DbObject, List <DbObjectTableSource> > > list)
        {
            List <IdentifierRequest> uniqueRequests = new List <IdentifierRequest>();

            foreach (KeyValuePair <DbObject, List <DbObjectTableSource> > record in list)
            {
                DbObject node = record.Key;
                if (node == null)
                {
                    continue;
                }

                List <DbObjectTableSource> availTables = record.Value;
                IdentifierRequest          dbRec       = null;
                bool addNew = true;

                foreach (IdentifierRequest rq in uniqueRequests)
                {
                    if (rq.HaveSameName(node))
                    {
                        // column name already in list, check the tables
                        if (rq.EqualsTables(availTables))
                        {
                            rq.mObjects.Add(node);
                            addNew = false;
                        }
                    }
                }

                if (addNew)
                {
                    dbRec       = new IdentifierRequest();
                    dbRec.mName = node.Identifiers.Last().Name;

                    foreach (DbObjectTableSource tSource in availTables)
                    {
                        dbRec.mTables.Add(IdentifierRequest.GetSimpleFullName(tSource.DbObject));
                    }

                    dbRec.mObjects.Add(node);
                    uniqueRequests.Add(dbRec);
                }
            }

            return(uniqueRequests);
        }
Beispiel #10
0
        public static bool IsNotAlreadyTakenUserIdentifier(IdentifierRequest userIdentifier, ICompany company, ref string message)
        {
            if (userIdentifier == null)
            {
                return(true);
            }
            var userIdentifierFromDb = company.ReadUserIdentifier(userIdentifier.TypeId, userIdentifier.Value);

            if (userIdentifierFromDb == null)
            {
                return(true);
            }
            else
            {
                message = $"Идентификатор {userIdentifier.Value} с типом {userIdentifier.TypeId} уже занят";
                return(false);
            }
        }
Beispiel #11
0
        /// <inheritdoc />
        public Task <bool> ValidateIdType(IdentifierRequest identifierRequest)
        {
            var response = _mcfClient.GetAllIdentifiers(identifierRequest.BpId);

            if (response == null || response.Error != null)
            {
                const string uiFailureMessage     = "Failed to get business partner identifiers";
                var          responseErrorMessage = response?.Error != null?response.Error.ToJson() : uiFailureMessage;

                _logger.LogError($"{ responseErrorMessage }: {identifierRequest.ToJson()}");
                throw new InternalServerException(uiFailureMessage);
            }

            var validIdentifier = response.Result?.Results?.FirstOrDefault(x =>
                                                                           x.IdentifierType == identifierRequest.IdentifierType.ToString() &&
                                                                           x.IdentifierNo == identifierRequest.IdentifierNo);

            return(Task.FromResult(validIdentifier != null));
        }
Beispiel #12
0
        public static bool IsExistenceUserIdentifierType(IdentifierRequest userIdentifier, ICompany company, ref string message)
        {
            if (userIdentifier == null)
            {
                message = "Не передан дентификатор пользователя";
                return(false);
            }
            var userIdentifierTypeFromDb = company.ReadUserIdentifierType(userIdentifier.TypeId);

            if (userIdentifierTypeFromDb == null)
            {
                message = $"Типа идентификатора {userIdentifier.TypeId} не существует";
                return(false);
            }
            else
            {
                return(true);
            }
        }
Beispiel #13
0
        private string ProcessPhoto(PhotoProcessorRequest photoProcessorRequest, OriginalPhoto originalPhoto)
        {
            if (originalPhoto.Photo == null)
                return string.Format("Could not find a photo for {0}", originalPhoto.FriendlyName);

            // Lookup the identifier and load a record.
            var identifierRequest = new IdentifierRequest { LocalEducationAgencyId = photoProcessorRequest.LocalEducationAgencyId, SchoolId = photoProcessorRequest.SchoolId, OriginalPhoto = originalPhoto };
            var identifier = identifierProvider.Get(identifierRequest);

            if (identifier == null)
                return string.Format("Unable to find a record in the database for {0}", originalPhoto.FriendlyName);

            // Each photo that reaches this point has a valid identifier, so resize and save.
            var photos = new Dictionary<PhotoCategory, byte[]> { { PhotoCategory.Original, originalPhoto.Photo } };

            photoResizer.Resize(photos);
            photoStorage.Save(identifier, photos);

            return null;
        }
Beispiel #14
0
        public async Task <IActionResult> CreateIdType([FromBody] IdentifierRequest identifierRequest)
        {
            IActionResult result;

            // !!! JMC - should these be logged?
            _logger.LogInformation($"CreateIdType({nameof(identifierRequest)}: {identifierRequest.ToJson()})");

            try
            {
                result = Ok(await _moveInLogic.CreateIdType(identifierRequest));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Unable to Create IDentifier Type for a BP", ex.Message);

                result = ex.ToActionResult();
            }

            return(result);
        }
Beispiel #15
0
 public GetProductListByIdentifierRequest()
 {
     _IdentifierRequest = new IdentifierRequest();
     _Parameters.Add("IdentifierType", "");
     _Parameters.Add("EAN", "");
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="BpIdentifier"/> class.
 /// </summary>
 /// <param name="identifierRequest">Source of data to create or update the identifier.</param>
 public BpIdentifier(IdentifierRequest identifierRequest) : this()
 {
     AccountId      = identifierRequest.BpId;
     IdentifierType = identifierRequest.IdentifierType.ToString();
     IdentifierNo   = identifierRequest.IdentifierNo;
 }