private void SetViewBagEditResponsabilityData(string operationNumber, ResponsibilityDataViewModel model)
 {
     SetViewBagEditModel(operationNumber);
     ViewBag.ReponseRoleId            = _catalogService.GetConvergenceMasterDataIdByCode(OrgUnitRoleCode.ORG_RESPONSIBLE, MasterType.ORG_UNIT_ROLE);
     ViewBag.ResponsibleUnitsRoleList = _catalogService.GetListMasterData(MasterType.ORG_UNIT_ROLE);
     ViewBag.ResponsibleUnitsOrganizationalUnitList = _viewModelMapperHelper.GetDivisionList();
 }
        public static ResponsibilityDataViewModel UpdateProductDataResponsibilityData(this ResponsibilityDataViewModel model, ClientFieldData[] formData)
        {
            /* Responsibility Unit(s) */

            var inputsUnits = new string[]
            {
                "responsibleUnitsRole",
                "responsibleUnitsOrganizationalUnit",
                "responsibleUnitsEffortInDays",
            };

            var unitsGrouped = formData.Where(x => !string.IsNullOrWhiteSpace(x.Id) && inputsUnits.Any(y => x.Name == y)).GroupBy(x => x.Id);

            model.ResponsibilityUnits.Clear();

            foreach (var unitData in unitsGrouped)
            {
                var unit = new ResponsibleRowViewModel();
                model.ResponsibilityUnits.Add(unit);

                if (!unitData.Key.Contains("new-"))
                {
                    unit.RowId = int.Parse(unitData.Key);
                }

                var fieldCode = unitData.FirstOrDefault(x => x.Name == "responsibleUnitsRole");
                unit.Role = fieldCode.ConvertToInt();

                var field = unitData.FirstOrDefault(x => x.Name == "responsibleUnitsOrganizationalUnit");
                unit.OrganizationalUnitId = field.ConvertToInt();

                field = unitData.FirstOrDefault(x => x.Name == "responsibleUnitsEffortInDays");
                if (field != null)
                {
                    unit.EffortInDays = field.ConvertToInt();
                }
            }

            /*  TEAM   */
            var inputsTeams = new string[]
            {
                "userNameTeam",
                "OrganizationalUnitCode",
                "userNameTeam_text",
                "operationTeamsRole",
            };

            var teamsGrouped = formData.Where(x => !string.IsNullOrWhiteSpace(x.Id) && inputsTeams.Any(y => x.Name == y)).GroupBy(x => x.Id);

            model.Team.Clear();
            foreach (var teamData in teamsGrouped)
            {
                var member = new OperationTeamRowViewModel();
                model.Team.Add(member);

                if (!teamData.Key.Contains("new-"))
                {
                    member.RowId = int.Parse(teamData.Key);
                }
                else
                {
                    var fieldCode = teamData.FirstOrDefault(x => x.Name == "OrganizationalUnitCode");
                    member.OrganizationalUnitCode = fieldCode.ConvertToString();
                }

                var field = teamData.FirstOrDefault(x => x.Name == "userNameTeam_text");
                member.Name = field.ConvertToString();

                field           = teamData.FirstOrDefault(x => x.Name == "userNameTeam");
                member.UserName = field.ConvertToString();

                field       = teamData.FirstOrDefault(x => x.Name == "operationTeamsRole");
                member.Role = field.ConvertToInt();
            }

            return(model);
        }