예제 #1
0
        public DynamicResponse <List <ReturnedObject> > GetCountries()
        {
            DynamicResponse <List <ReturnedObject> > response = new DynamicResponse <List <ReturnedObject> >();

            try
            {
                List <ReturnedObject> data = new List <ReturnedObject>();

                CountryAccessor _CountryAccessor = new CountryAccessor();
                List <Country>  countries        = _CountryAccessor.GetList();

                LookUp lookUp = new LookUp();
                LookUpMultiLanguage lookUpMulti = new LookUpMultiLanguage();

                LookUpAccessor _LookUpAccessor = new LookUpAccessor();
                LookUpMultiLanguageAccessor _LookUpMultiLanguageAccessor = new LookUpMultiLanguageAccessor();

                foreach (Country item in countries)
                {
                    lookUp = new LookUp();
                    lookUp = _LookUpAccessor.Get(item.Code, countryTableId);

                    if (lookUp == null)
                    {
                        response.Message        = "please try again later";
                        response.ServerMessage  = "lookup is null for country code: " + item.Code;
                        response.HttpStatusCode = System.Net.HttpStatusCode.InternalServerError;

                        return(response);
                    }

                    lookUpMulti = new LookUpMultiLanguage();
                    lookUpMulti = _LookUpMultiLanguageAccessor.Get(lookUp.Id, 1);

                    if (lookUpMulti == null)
                    {
                        response.Message        = "please try again later";
                        response.ServerMessage  = "lookup multi is null for lookup id: " + lookUp.Id;
                        response.HttpStatusCode = System.Net.HttpStatusCode.InternalServerError;

                        return(response);
                    }

                    data.Add(new ReturnedObject
                    {
                        Id   = item.Id,
                        Name = lookUpMulti.Description
                    });
                }

                response.Data           = data;
                response.HttpStatusCode = System.Net.HttpStatusCode.OK;
                return(response);
            }
            catch (Exception ex)
            {
                response.HttpStatusCode = System.Net.HttpStatusCode.InternalServerError;
                response.ServerMessage  = "countries function. " + ex.Message;
                response.Message        = "Please try again later.";

                return(response);
            }
        }
예제 #2
0
파일: LookUpLogic.cs 프로젝트: HAMANZ/LMJ
        public List <T> ReturnListOf <T>(AdminTables table, long langId, int offset, int limit, List <LookUpAttributes> attributes, LookUpAttributes main, List <string> fields, bool isAll, out int total, long?lookUpId)
        {
            try
            {
                LookUpMultiLanguage lookupMulti = new LookUpMultiLanguage();
                LookUp        lookUp            = new LookUp();
                long          tableId;
                List <LookUp> allRowsThatHaveCodeOfMainChild      = new List <LookUp>();
                List <LookUp> selectedRowsThatHaveCodeOfMainChild = new List <LookUp>();
                List <LookUp> contents = new List <LookUp>();

                System.Type UsedClass  = __SharedClassesForeachTable[table];
                var         UsedObject = Activator.CreateInstance(UsedClass);

                List <string> images = new List <string>();

                dynamic dynamic = (dynamic)UsedObject;
                tableId = __SharedTableIds[table];
                List <dynamic> allDynamic = new List <dynamic>();


                var accessor = FastMember.TypeAccessor.Create(typeof(T));

                if (lookUpId == null)
                {
                    allRowsThatHaveCodeOfMainChild = GetRowsOfTableByCode(tableId, main.Code);

                    total = allRowsThatHaveCodeOfMainChild.Count();
                    selectedRowsThatHaveCodeOfMainChild = allRowsThatHaveCodeOfMainChild.OrderByDescending(s => s.Id).Skip(offset).Take(limit).ToList();
                }
                else
                {
                    selectedRowsThatHaveCodeOfMainChild.Add(_LookUpAccessor.Get((long)lookUpId));
                    total = 1;
                }

                foreach (LookUp row in selectedRowsThatHaveCodeOfMainChild)
                {
                    contents = new List <LookUp>();
                    contents = _LookUpAccessor.GetChildren(row.Id);
                    dynamic  = (dynamic)Activator.CreateInstance(UsedClass);
                    accessor[dynamic, "Id"] = row.Id;

                    // main
                    if (main.isLangNull)
                    {
                        lookupMulti = _LookUpMultiAccessor.Get(row.Id, null);
                    }
                    else
                    {
                        lookupMulti = _LookUpMultiAccessor.Get(row.Id, langId);
                    }
                    if (lookupMulti != null)
                    {
                        accessor[dynamic, main.Name] = lookupMulti.Description;
                    }

                    //TO DO set id

                    foreach (LookUpAttributes obj in attributes)
                    {
                        if (obj.Code == main.Code)
                        {
                            continue;
                        }
                        if (!isAll)
                        {
                            if (fields.Contains(obj.Name) == false)
                            {
                                continue;
                            }
                        }
                        lookUp = new LookUp();
                        lookUp = contents.Where(e => e.Code == obj.Code).FirstOrDefault();
                        if (lookUp == null)
                        {
                            continue;
                        }
                        if (obj.Name == "Date")
                        {
                            accessor[dynamic, obj.Name] = (row.SysDate).Value.Date; //new
                            continue;
                        }
                        if (obj.isMedia)
                        {
                            try
                            {
                                if (obj.isList)
                                {
                                    //get list
                                    images = new List <string>();
                                    images = _MediaAccessor.Get(lookUp.Id, obj.isVideo)
                                             .Select(e => e.Name).ToList();
                                    if (images.Count != 0)
                                    {
                                        accessor[dynamic, obj.Name] = images;
                                    }
                                }
                                else
                                {
                                    LookUpMedia media = new LookUpMedia();
                                    media = _MediaAccessor.Get(lookUp.Id, obj.isVideo).FirstOrDefault();
                                    if (media == null)
                                    {
                                        continue;
                                    }
                                    // get one image
                                    accessor[dynamic, obj.Name] = media.Name;
                                }
                            }
                            catch (Exception ex)
                            {
                                throw new Exception("exception in media id=" + lookUp.Id);
                            }
                        }
                        else
                        {
                            try
                            {
                                if (obj.isLangNull)
                                {
                                    lookupMulti = _LookUpMultiAccessor.Get(lookUp.Id, null);
                                }
                                else
                                {
                                    lookupMulti = _LookUpMultiAccessor.Get(lookUp.Id, langId);
                                }

                                accessor[dynamic, obj.Name] = lookupMulti.Description;
                            }
                            catch (Exception ex)
                            {
                                throw new Exception("exception in lookup multi id=" + lookUp.Id);
                            }
                        }
                    }
                    allDynamic.Add(dynamic);
                }

                List <T> list = new List <T>();
                foreach (dynamic d in allDynamic)
                {
                    list.Add((T)d);
                }


                return(list);
            }
            catch (Exception ex)
            {
                throw;
            }
        }